/* LV Typing Suite 6.0.9 — scoped launch regression repair only. */

/* -------------------------------------------------------------------------
 * Exam Kruti Dev: match the normal answer box geometry and show ONLY the
 * synchronized real visual-caret span. 6.0.8's pseudo-caret and the legacy
 * preview placeholder are explicitly neutralized.
 * ------------------------------------------------------------------------- */
body.lvt-exam-running .lvt-ws-root[data-lvt-ws].lvt-kruti-mode #lvt-ws-source + .lvt-kruti-overlay{
  display:block!important;
  position:relative!important;
  width:calc(100% - 16px)!important;
  max-width:calc(100% - 16px)!important;
  min-height:180px!important;
  margin:34px 8px 0!important;
  margin-block-start:34px!important;
  padding:0!important;
  box-sizing:border-box!important;
  inset:auto!important;
  transform:none!important;
}
/* UP Police normal answer box uses the compact 24px / 115px geometry. */
body.lvt-exam-running .lvt-ws-root[data-lvt-ws].lvt-template-up_police.lvt-kruti-mode #lvt-ws-source + .lvt-kruti-overlay{
  min-height:115px!important;
  margin-top:24px!important;
  margin-block-start:24px!important;
}
/* UPSSSC normal answer box uses 34px / 180px. */
body.lvt-exam-running .lvt-ws-root[data-lvt-ws].lvt-template-upsssc.lvt-kruti-mode #lvt-ws-source + .lvt-kruti-overlay{
  min-height:180px!important;
  margin-top:34px!important;
  margin-block-start:34px!important;
}
/* AHC's approved viewport layer uses a 22px answer-box separation. */
body.lvt-exam-running .lvt-ws-root[data-lvt-ws].lvt-template-ahc.lvt-kruti-mode #lvt-ws-source + .lvt-kruti-overlay{
  min-height:165px!important;
  margin-top:22px!important;
  margin-block-start:22px!important;
}

body.lvt-exam-running .lvt-ws-root[data-lvt-ws].lvt-kruti-mode .lvt-kruti-overlay .lvt-kruti-live-preview{
  display:block!important;
  position:relative!important;
  width:100%!important;
  max-width:100%!important;
  min-height:inherit!important;
  margin:0!important;
  padding:14px!important;
  box-sizing:border-box!important;
  z-index:3!important;
  pointer-events:none!important;
  white-space:pre-wrap!important;
  overflow:auto!important;
}
/* Never show the old grey "Type with Kruti Dev keys…" helper inside a live exam. */
body.lvt-exam-running .lvt-ws-root[data-lvt-ws].lvt-kruti-mode .lvt-kruti-live-preview::before{
  content:none!important;
  display:none!important;
}
/* Remove the 6.0.8 pseudo-caret; the workspace already owns a real caret span. */
body.lvt-exam-running .lvt-ws-root[data-lvt-ws].lvt-kruti-mode .lvt-kruti-live-preview::after{
  content:none!important;
  display:none!important;
  animation:none!important;
}
body.lvt-exam-running .lvt-ws-root[data-lvt-ws].lvt-kruti-mode .lvt-kruti-live-preview .lvt-kruti-visual-caret{
  display:inline-block!important;
  position:relative!important;
  z-index:4!important;
  width:2px!important;
  height:1.22em!important;
  margin-left:1px!important;
  vertical-align:-0.18em!important;
  background:#0f172a!important;
  animation:lvtKrutiCaretBlink 1s steps(1,end) infinite!important;
}
@media (prefers-reduced-motion:reduce){
  body.lvt-exam-running .lvt-ws-root[data-lvt-ws].lvt-kruti-mode .lvt-kruti-live-preview .lvt-kruti-visual-caret{
    animation:none!important;
    opacity:1!important;
  }
}
/* Defensive fallback only if a stale DOM has the preview as a direct source sibling. */
body.lvt-exam-running .lvt-ws-root[data-lvt-ws].lvt-kruti-mode #lvt-ws-source + .lvt-kruti-live-preview{
  width:calc(100% - 16px)!important;
  max-width:calc(100% - 16px)!important;
  min-height:180px!important;
  margin:34px 8px 0!important;
  padding:14px!important;
  box-sizing:border-box!important;
}

/* -------------------------------------------------------------------------
 * Premium coupon feedback. Server-side quote validation remains authoritative.
 * Blue = ready, green = accepted, red = rejected/expired/exhausted/etc.
 * ------------------------------------------------------------------------- */
.lv5714-coupon-box .lv5714-apply.lvts609-coupon-ready:not(:disabled){
  background:#1764e8!important;
  border-color:#1764e8!important;
  color:#fff!important;
  cursor:pointer!important;
}
.lv5714-coupon-box .lv5714-apply.lvts609-coupon-valid{
  background:#16833f!important;
  border-color:#16833f!important;
  color:#fff!important;
  cursor:pointer!important;
}
.lv5714-coupon-box .lv5714-apply.lvts609-coupon-invalid{
  background:#c9342f!important;
  border-color:#c9342f!important;
  color:#fff!important;
  cursor:pointer!important;
}
.lv5714-coupon-box .lv5714-apply.lvts609-coupon-checking{
  background:#64748b!important;
  border-color:#64748b!important;
  color:#fff!important;
  cursor:wait!important;
}
.lv5714-coupon-box small.lvts609-coupon-ok{
  color:#16833f!important;
  font-weight:800!important;
}
.lv5714-coupon-box small.lvts609-coupon-error{
  color:#b42318!important;
  font-weight:800!important;
}
