@import url("https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;500;600;700;800;900&family=Noto+Sans+Devanagari:wght@400;500;600;700;800;900&display=swap");
/* Local server fonts. Install font files separately in assets/fonts/. */
@font-face{font-family:"KrutiDev010Local";src:url("../fonts/KrutiDev010.woff2") format("woff2");font-display:swap;font-weight:400;font-style:normal}
@font-face{font-family:"KrutiDev011Local";src:url("../fonts/KrutiDev011.woff2") format("woff2");font-display:swap;font-weight:700;font-style:normal}
@font-face{font-family:"PoppinsLocal";src:url("../fonts/UnicodeLocal.woff2") format("woff2");font-display:swap;font-weight:100 900;font-style:normal}
:root{--bg:#eef4fb;--card:#fff;--ink:#10223d;--muted:#667892;--line:#d5e2f1;--line2:#e8eef6;--blue:#2764ed;--green:#12a84f;--teal:#0b9bb6;--red:#e33b45;--navy:#15243b;--shadow:0 8px 26px rgba(35,70,120,.06)}*{box-sizing:border-box}[hidden]{display:none!important}html{font-size:16px}body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif}a{text-decoration:none;color:var(--blue)}button,input,select,textarea{font:inherit}.top{height:64px;background:#fff;border-bottom:1px solid var(--line2)}.top-in,.nav-in{max-width:1280px;height:100%;margin:auto;padding:0 22px;display:flex;align-items:center}.top-in{justify-content:space-between}.brand{display:flex;align-items:center;gap:9px;font-weight:950;color:#245ce0;font-size:18px}.brand b{width:32px;height:32px;border-radius:10px;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:12px}.brand i{font-style:normal;color:#7b8da6}.account{display:flex;align-items:center;gap:9px;color:#60718a;font-size:12px}.account span{padding:4px 7px;border-radius:999px;background:#eef4ff;color:#2458cb;font-weight:850}.account a{font-weight:800}.nav{height:46px;background:#fff;border-bottom:1px solid var(--line)}.nav-in{gap:2px}.nav a{height:46px;display:flex;align-items:center;padding:0 13px;color:#3c506d;font-weight:800;border-bottom:3px solid transparent}.nav a.active,.nav a:hover{color:var(--blue);border-color:var(--blue);background:#fbfdff}.wrap{max-width:1280px;margin:22px auto;padding:0 22px}.page-head{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:14px}.page-head h1{margin:0 0 3px;font-size:27px;letter-spacing:-.02em}.page-head p{margin:0;color:var(--muted);font-weight:600}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn,button{border:0;border-radius:10px;min-height:38px;padding:8px 13px;background:var(--blue);color:#fff;font-weight:850;cursor:pointer}.btn.green,button.green{background:var(--green)}.btn.ghost,button.ghost{background:#fff;color:#334155;border:1px solid #cad8e8}.btn.red,button.red{background:var(--red)}.card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:16px;margin-bottom:14px}.alert{padding:10px 13px;border-radius:10px;margin-bottom:12px;font-weight:700}.alert.ok{background:#eafbf0;color:#08743a;border:1px solid #afe7c3}.alert.err{background:#fff1f2;color:#b42318;border:1px solid #fecdd3}.filters{display:flex;gap:7px;align-items:center;flex-wrap:wrap;padding:10px;background:#f8fbff;border:1px solid var(--line2);border-radius:12px;margin-bottom:10px}.filters input{flex:1 1 280px}.filters select{flex:0 0 150px;width:150px}input,select,textarea{width:100%;border:1px solid #cbd8e8;border-radius:9px;background:#fff;color:#132740;outline:none;padding:9px 10px}input,select{height:39px}textarea{min-height:150px;resize:vertical;line-height:1.65}input:focus,select:focus,textarea:focus{border-color:#79a3f4;box-shadow:0 0 0 3px rgba(39,100,237,.09)}.count-line{font-size:11px;color:#667892;margin:7px 2px}.dense{border:1px solid var(--line);border-radius:12px;overflow:auto;background:#fff}.dhead,.drow{display:grid;align-items:center;gap:9px;min-width:940px}.dhead{min-height:38px;padding:0 11px;background:var(--navy);color:#fff;font-size:10px;text-transform:uppercase;font-weight:900}.drow{min-height:57px;padding:7px 11px;border-top:1px solid var(--line2)}.drow:hover{background:#fbfdff}.dcheck input{width:14px;height:14px;margin:0}.title{font-weight:900;font-size:13px;line-height:1.25}.sub{font-size:10.5px;color:#718198;margin-top:2px}.pill{display:inline-flex;align-items:center;padding:4px 7px;border-radius:999px;font-size:10px;font-weight:900}.typing{background:#eaf1ff;color:#2457d6}.steno{background:#e9f9f1;color:#08754b}.published,.active{background:#dcfce7;color:#08743a}.draft{background:#fef3c7;color:#92400e}.unpublished,.disabled{background:#fee2e2;color:#b42318}.manage{display:flex;gap:5px;justify-content:flex-end;align-items:center}.ico{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;max-width:32px!important;max-height:32px!important;padding:0!important;border-radius:9px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;font:14px/1 Arial,"Noto Color Emoji","Segoe UI Emoji",sans-serif!important;border:1px solid #d4dfec!important;background:#fff!important;color:#17243a!important;overflow:hidden!important}.ico.view{background:#f7fbff!important}.ico.edit{background:#fff7ed!important;border-color:#fdc98c!important}.ico.lock{background:#fff1f2!important;border-color:#fecaca!important}.ico.rank{background:#f5f0ff!important;border-color:#ddccff!important}.ico.del{background:#fff1f2!important;border-color:#fecaca!important}.bulk{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 9px;margin-top:7px;background:#f8fafc;border:1px solid var(--line);border-radius:10px;font-size:11px}.bulk .mini{display:flex;gap:5px}.bulk .mini button{width:30px;height:29px;min-height:29px;padding:0;font-size:13px}.pagination{display:flex;justify-content:center;gap:5px;margin-top:12px;flex-wrap:wrap}.page{min-width:33px;height:33px;padding:0 9px;display:grid;place-items:center;background:#fff;border:1px solid var(--line);border-radius:9px;color:#34475f;font-weight:800}.page.on{background:var(--blue);color:#fff}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:14px}.stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px;box-shadow:var(--shadow)}.stat small{display:block;color:#718198;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.stat b{display:block;font-size:28px;margin-top:5px}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.section-title h2{margin:0;font-size:18px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}table{width:100%;border-collapse:collapse;min-width:720px}th,td{padding:9px 10px;border-bottom:1px solid var(--line2);text-align:left;font-size:12px}th{background:#f7faff;color:#52647d;text-transform:uppercase;font-size:10px;letter-spacing:.04em}tr:last-child td{border-bottom:0}.form-card{max-width:920px;margin:0 auto 14px}.field{margin-bottom:13px}.field label{display:block;font-weight:850;font-size:12px;margin-bottom:5px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-actions{display:flex;justify-content:flex-end;gap:7px}.font-english{font-family:"UnicodeLocal","Poppins","Noto Sans","Segoe UI",Arial,sans-serif}.font-mangal{font-family:"PoppinsLocal","Poppins","Noto Sans Devanagari","Nirmala UI","Mangal",sans-serif}.font-krutidev{font-family:"KrutiDev010Local","Kruti Dev 010",serif;font-size:1.12em}.master-preview{max-height:430px;overflow:auto;white-space:pre-wrap;line-height:1.85;font-size:17px;padding:4px}.audio audio{width:100%}.result-head{text-align:center;background:#fff;border:1px solid var(--line);border-radius:15px;padding:15px;margin-bottom:12px}.result-head h1{margin:0 0 5px}.scoreline{display:flex;justify-content:center;gap:10px;font-size:17px;font-weight:950}.acc{color:#16a34a}.err{color:#dc2626}.summary7{display:grid;grid-template-columns:repeat(7,1fr);background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:12px}.metric{text-align:center;padding:12px 6px;border-right:1px solid var(--line)}.metric:last-child{border-right:0}.metric small{display:block;color:#60718a;font-size:10px;font-weight:900}.metric b{font-size:20px;display:block;margin-top:4px}.perf{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:12px}.perf .metric{background:#fff;border:1px solid var(--line);border-radius:12px}.compare{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;font-size:18px;line-height:2;text-align:justify;text-justify:inter-word;word-break:break-word}.missing{color:#dc2626;font-weight:800}.extra{color:#16a34a;font-weight:800}.changed .rightword{color:#111}.changed .wrongword{color:#2563eb;font-weight:800}.leader-wrap{max-width:1050px;margin:0 auto}.leader-title{text-align:center;margin-bottom:14px}.leader-title h1{margin:0 0 10px}.radios{display:flex;justify-content:center;gap:9px}.radios label{display:flex;align-items:center;gap:5px;padding:6px 12px;border:1px solid #bfd1fb;border-radius:999px;background:#fff;color:#2457d6;font-weight:850;cursor:pointer}.radios label.on{background:var(--blue);color:#fff}.radios input{width:auto;height:auto}.tests-line{text-align:center;color:#64748b;font-weight:700;margin:10px 0 14px}.rank-badge{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#edf2f7;font-weight:900}.r1{background:#fef3c7;color:#92400e}.r2{background:#e2e8f0}.r3{background:#ffedd5;color:#9a3412}.you{font-size:9px;font-weight:900;background:#dbeafe;color:#1d4ed8;padding:2px 6px;border-radius:999px}.test-list .dhead,.test-list .drow{grid-template-columns:28px minmax(280px,1.5fr) 80px 92px 70px 105px 90px 185px}.learner-list .dhead,.learner-list .drow{grid-template-columns:28px minmax(230px,1.3fr) minmax(180px,1fr) 85px 70px 105px 125px}.result-list .dhead,.result-list .drow{grid-template-columns:28px minmax(160px,1fr) minmax(220px,1.4fr) 80px 85px 90px 115px 80px}.available .dhead,.available .drow{grid-template-columns:minmax(300px,1.6fr) 90px 100px 80px 105px}.history .dhead,.history .drow{grid-template-columns:minmax(240px,1.5fr) 80px 90px 85px 100px 80px}.setup{max-width:900px;margin:0 auto}.setup-top{text-align:center;margin-bottom:12px}.setup-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.setup-actions{display:flex;justify-content:space-between;margin-top:12px}.audio-box{padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fbff}.audio-box audio{width:100%}.exam-only .top,.exam-only .nav{display:none}.exam-only .wrap{max-width:none;margin:0;padding:10px 16px}.exambar{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-bottom:8px}.examtools{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.tool{padding:5px 8px;border:1px solid var(--line);border-radius:9px;background:#fff;font-weight:800}.timer{color:#0a8b46;background:#eafbf0;font-size:18px}.master-box{height:calc(100vh - 205px);min-height:310px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px;font-size:19px;line-height:1.8;white-space:pre-wrap}.typing-box{margin-top:8px}.typing-box textarea{height:5.2em;min-height:5.2em;max-height:5.2em;font-size:19px;line-height:1.55}.typing-box.full textarea{height:calc(100vh - 185px);min-height:360px;max-height:none}.examfoot{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:7px}.exammeta{display:flex;gap:6px;flex-wrap:wrap;color:#596b83;font-size:11px}.empty{padding:28px;text-align:center;color:#728198}
@media(max-width:900px){.grid4{grid-template-columns:repeat(2,1fr)}.filters select{flex:1 1 140px;width:auto}.setup-grid{grid-template-columns:1fr 1fr}.summary7{grid-template-columns:repeat(4,1fr)}.metric{border-bottom:1px solid var(--line)}.perf{grid-template-columns:repeat(3,1fr)}}@media(max-width:640px){.wrap{padding:0 11px}.top-in,.nav-in{padding:0 11px}.account strong{display:none}.nav-in{overflow:auto}.page-head{align-items:flex-start;flex-direction:column}.actions{width:100%}.actions .btn{flex:1}.filters{display:grid;grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}.filters button{width:100%}.dense{overflow-x:auto}.grid4{grid-template-columns:1fr 1fr}.form-grid,.setup-grid{grid-template-columns:1fr}.summary7{grid-template-columns:repeat(2,1fr)}.perf{grid-template-columns:1fr 1fr}.scoreline{font-size:15px}.exam-only .wrap{padding:7px}.exambar{align-items:flex-start;flex-direction:column}.master-box{height:52vh}.typing-box textarea{height:5em;min-height:5em}.examfoot{align-items:stretch;flex-direction:column}.examfoot .btn,.examfoot button{width:100%}}


/* ===== FINAL TYPING VIEWPORT FIT ===== */
body.exam-mode{overflow:hidden!important}
body.exam-mode .top,body.exam-mode .nav{display:none!important}
body.exam-mode .wrap{
  max-width:none!important;
  width:100%!important;
  height:100dvh!important;
  min-height:100dvh!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}

#exam{
  height:100dvh!important;
  min-height:100dvh!important;
  max-height:100dvh!important;
  margin:0!important;
  padding:10px!important;
  display:grid!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  gap:10px!important;
  overflow:hidden!important;
}

#exam .examtop{
  min-height:56px!important;
  margin:0!important;
  flex:0 0 auto!important;
}

#exam form{
  min-height:0!important;
  height:100%!important;
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto auto!important;
  gap:10px!important;
  overflow:hidden!important;
}

#master{
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow:auto!important;
  overscroll-behavior:contain!important;
}

#exam .master-box,
#exam .reference-box,
#exam .mastermatter{
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  overflow:auto!important;
}

#exam .typing-box{
  min-height:0!important;
  height:auto!important;
}

#typed{
  display:block!important;
  width:100%!important;
  height:96px!important;
  min-height:96px!important;
  max-height:96px!important;
  resize:none!important;
  overflow:auto!important;
}

#exam .examfoot{
  position:relative!important;
  bottom:auto!important;
  left:auto!important;
  right:auto!important;
  z-index:20!important;
  min-height:48px!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
  background:var(--bg)!important;
}

#exam .exammeta{
  min-width:0!important;
  display:flex!important;
  justify-content:center!important;
  gap:8px!important;
  flex-wrap:wrap!important;
  font-size:11px!important;
}

#exam .examfoot button{
  min-height:42px!important;
  white-space:nowrap!important;
}

@media (max-height:760px){
  #exam{padding:7px!important;gap:7px!important}
  #exam .examtop{min-height:48px!important}
  #typed{height:78px!important;min-height:78px!important;max-height:78px!important}
  #exam .examfoot{min-height:42px!important}
  #exam .examfoot button{min-height:38px!important;padding:7px 11px!important}
}
@media (max-height:620px){
  #exam .examtop{min-height:44px!important}
  #typed{height:64px!important;min-height:64px!important;max-height:64px!important}
  #exam .exammeta{font-size:10px!important;gap:5px!important}
}
@media (max-width:700px){
  #exam{padding:7px!important}
  #exam .examfoot{
    grid-template-columns:1fr 1fr!important;
  }
  #exam .exammeta{
    grid-column:1/-1!important;
    grid-row:1!important;
    order:-1!important;
  }
  #exam .examfoot button{width:100%!important}
}


/* ===== TEST STAGE STATE FIX ===== */
#setup[hidden],#exam[hidden]{display:none!important}
#setup:not([hidden]){display:block!important}
#exam:not([hidden]){display:grid!important}

body.test-running .top,
body.test-running .nav{display:none!important}

body.test-running .wrap{
  max-width:none!important;
  width:100%!important;
  height:100dvh!important;
  min-height:100dvh!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
}

#exam:not([hidden]){
  height:100dvh!important;
  min-height:100dvh!important;
  max-height:100dvh!important;
  grid-template-rows:auto minmax(0,1fr)!important;
  gap:10px!important;
  padding:10px!important;
  overflow:hidden!important;
}

/* typing: master uses remaining height, typing area stays short */
#exam:not([hidden]) .master-box{
  min-height:0!important;
  overflow:auto!important;
}
#exam:not([hidden]) form{
  min-height:0!important;
  height:100%!important;
  display:grid!important;
  grid-template-rows:auto auto!important;
  align-content:end!important;
  gap:10px!important;
}
#exam:not([hidden]) .typing-box{height:auto!important;min-height:0!important}
#exam:not([hidden]) #typed{
  height:96px!important;
  min-height:96px!important;
  max-height:96px!important;
  resize:none!important;
}
#exam:not([hidden]) .examfoot{
  min-height:46px!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
}

/* Steno has no master panel; typing area gets practical workspace */
#exam:not([hidden]) .typing-box.full{
  align-self:stretch!important;
}
#exam:not([hidden]) .typing-box.full #typed,
#exam:not([hidden]) .typing-box.full textarea{
  height:min(58vh,520px)!important;
  min-height:240px!important;
  max-height:none!important;
}

@media(max-height:760px){
  #exam:not([hidden]){padding:7px!important;gap:7px!important}
  #exam:not([hidden]) #typed{height:76px!important;min-height:76px!important;max-height:76px!important}
  #exam:not([hidden]) .typing-box.full #typed,
  #exam:not([hidden]) .typing-box.full textarea{height:min(52vh,380px)!important;min-height:180px!important}
}
@media(max-width:700px){
  #exam:not([hidden]) .examfoot{grid-template-columns:1fr 1fr!important}
  #exam:not([hidden]) .exammeta{grid-column:1/-1!important;grid-row:1!important}
  #exam:not([hidden]) .examfoot button{width:100%!important}
}


/* ===== EXAM TOOLBAR + STENO SPACE FIX ===== */

/* Toolbar controls must always be legible */
#exam .examtools{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:7px!important;
  flex-wrap:nowrap!important;
}
#exam .tool{
  box-sizing:border-box!important;
  min-height:36px!important;
  height:36px!important;
  padding:0 12px!important;
  border:1px solid #cbd9ec!important;
  border-radius:10px!important;
  background:#ffffff!important;
  color:#12213a!important;
  font-size:13px!important;
  font-weight:800!important;
  line-height:34px!important;
  opacity:1!important;
  visibility:visible!important;
  text-indent:0!important;
  -webkit-text-fill-color:#12213a!important;
}
#exam button.tool{
  width:auto!important;
  min-width:44px!important;
  max-width:none!important;
  cursor:pointer!important;
}
#exam .font-tool{
  color:#1d4ed8!important;
  background:#f7faff!important;
  border-color:#bfd2ff!important;
  font-size:14px!important;
}
#exam .tool.timer{
  color:#087a3d!important;
  background:#ecfdf3!important;
  border-color:#b7ebca!important;
  font-size:17px!important;
  min-width:76px!important;
}

/* Exam header itself stays compact */
#exam .exambar{
  min-height:54px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:12px!important;
  margin:0!important;
  padding:8px 12px!important;
}

/* TYPING: master matter takes remaining height, typing area short */
#exam:not([hidden]):has(.typing-box:not(.full)){
  grid-template-rows:auto minmax(0,1fr)!important;
}
#exam:not([hidden]) .master-box{
  align-self:stretch!important;
}

/* STENO: no artificial spacer; textarea starts immediately under toolbar */
#exam:not([hidden]):has(.typing-box.full){
  grid-template-rows:auto minmax(0,1fr)!important;
}
#exam:not([hidden]):has(.typing-box.full) form{
  height:100%!important;
  min-height:0!important;
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  align-content:stretch!important;
  gap:10px!important;
}
#exam:not([hidden]):has(.typing-box.full) .typing-box.full{
  min-height:0!important;
  height:100%!important;
  align-self:stretch!important;
  display:block!important;
}
#exam:not([hidden]):has(.typing-box.full) .typing-box.full #typed{
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  resize:none!important;
  display:block!important;
}

/* Typing textarea remains compact */
#exam:not([hidden]):has(.typing-box:not(.full)) form{
  height:auto!important;
  min-height:0!important;
  display:grid!important;
  grid-template-rows:auto auto!important;
  align-content:end!important;
  gap:10px!important;
}
#exam:not([hidden]):has(.typing-box:not(.full)) #typed{
  height:96px!important;
  min-height:96px!important;
  max-height:96px!important;
}

/* Footer always visible */
#exam .examfoot{
  margin:0!important;
  min-height:48px!important;
  padding:0!important;
}

/* Fallback for browsers without :has support: full class itself must stretch */
#exam .typing-box.full{
  flex:1 1 auto!important;
  min-height:0!important;
}
#exam .typing-box.full #typed{
  min-height:260px!important;
}

/* Smaller-height screens */
@media(max-height:760px){
  #exam .exambar{min-height:48px!important;padding:6px 9px!important}
  #exam .tool{height:32px!important;min-height:32px!important;line-height:30px!important;padding:0 9px!important}
  #exam button.tool{min-width:40px!important}
  #exam:not([hidden]):has(.typing-box:not(.full)) #typed{
    height:76px!important;min-height:76px!important;max-height:76px!important;
  }
}
@media(max-width:720px){
  #exam .exambar{align-items:flex-start!important;flex-direction:column!important}
  #exam .examtools{width:100%!important;justify-content:flex-start!important;overflow-x:auto!important;padding-bottom:2px!important}
  #exam .tool{flex:0 0 auto!important}
}

/* Topic + replacement readability */
.change-arrow{display:inline-block;padding:0 .18em;color:#64748b;font-weight:800}
.tm-topic{font-size:11px;font-weight:700;color:#475569;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tm-head,.tm-row{grid-template-columns:28px minmax(260px,1.55fr) 78px 92px 100px 64px 102px 88px 194px!important}
@media(max-width:1100px){.tm-head,.tm-row{min-width:980px}}

/* ===== Dense sortable lists + rank/review ===== */
.sort-head{color:inherit!important;text-decoration:none!important;white-space:nowrap}.sort-head span{font-size:9px;opacity:.72;margin-left:2px}
.dbid{font-size:10px;color:#718198;font-weight:700}.serial{font-variant-numeric:tabular-nums;color:#52647d;font-weight:800}
.dcheck input,.dhead input[type=checkbox],input[data-select-all]{width:13px!important;height:13px!important;min-width:13px!important;min-height:13px!important;margin:0!important;padding:0!important}
.inline-form{display:inline-flex;margin:0}
.test-list .dhead,.test-list .drow{grid-template-columns:24px 36px minmax(220px,1.45fr) 76px 90px 100px 64px 115px 86px 188px;min-width:1120px}
.learner-list .dhead,.learner-list .drow{grid-template-columns:24px 36px minmax(180px,1.3fr) 180px 90px 70px 145px 140px;min-width:950px}
.result-list .dhead,.result-list .drow{grid-template-columns:24px 36px minmax(155px,1fr) minmax(180px,1.25fr) 80px 86px 100px 145px 80px;min-width:1050px}
.available .dhead,.available .drow{grid-template-columns:40px minmax(230px,1.5fr) 82px 95px 110px 72px 110px;min-width:820px}
.history .dhead,.history .drow{grid-template-columns:40px minmax(220px,1.5fr) 85px 90px 110px 145px 55px;min-width:800px}
.master-preview.full-view{max-height:none!important;height:auto!important;overflow:visible!important;white-space:pre-wrap!important}
.compact-table th,.compact-table td{padding:8px 9px}
.result-details{margin-top:12px;display:grid;gap:9px}.result-details details{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden}.result-details summary{cursor:pointer;list-style:none;padding:11px 14px;font-weight:900;display:flex;justify-content:space-between;align-items:center}.result-details summary::-webkit-details-marker{display:none}.result-details summary span{font-size:11px;color:#718198;font-weight:700}.result-details details[open] summary{border-bottom:1px solid var(--line2);background:#f8fbff}.details-body{padding:12px}.text-snapshot{white-space:pre-wrap;line-height:1.9;font-size:16px;text-align:justify}.current-rank{background:#fff7ed!important}.change-arrow{padding:0 .18em;color:#64748b;font-weight:900}
@media(max-width:700px){.result-details summary{padding:10px 11px}.details-body{padding:9px}.summary7{grid-template-columns:repeat(4,1fr)}}

/* ===== Simple System Service ===== */
.service-page{max-width:980px;margin:0 auto}
.service-health{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 19px;border-radius:15px;margin-bottom:12px;border:1px solid var(--line);background:#fff}
.service-health small{display:block;text-transform:uppercase;font-size:10px;font-weight:900;letter-spacing:.06em;margin-bottom:3px}.service-health strong{font-size:23px}.service-health.good{border-color:#b8e7ca;background:#f1fcf5}.service-health.good strong{color:#08743a}.service-health.warn{border-color:#f7d58a;background:#fffbeb}.service-health.warn strong{color:#a16207}.service-health.bad{border-color:#fecaca;background:#fff1f2}.service-health.bad strong{color:#b42318}.health-note{font-size:12px;font-weight:700;color:#52647d;text-align:right}
.service-stats{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-bottom:12px}.service-stat{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.service-stat small{font-size:10px;text-transform:uppercase;font-weight:900;color:#718198}.service-stat b{font-size:27px;display:block;margin:3px 0}.service-stat span{font-size:11px;color:#718198}
.service-actions{padding:8px 16px}.service-actions .section-title{padding:8px 0}.clean-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;padding:13px 0;border-top:1px solid var(--line2)}.clean-row:first-of-type{border-top:0}.clean-row b{font-size:14px}.clean-row p{margin:3px 0 0;color:#667892;font-size:12px}.service-btn{min-width:125px}.warn-btn{background:#d97706!important}.soft-btn{background:#fff!important;color:#334155!important;border:1px solid #cbd8e8!important}.service-btn:disabled{opacity:.45;cursor:not-allowed}
.service-tip{display:flex;gap:8px;align-items:center;padding:12px 14px;border:1px solid #bfd5ff;background:#f4f8ff;border-radius:12px;font-size:12px;color:#334155}
@media(max-width:650px){.service-health{align-items:flex-start;flex-direction:column}.health-note{text-align:left}.service-stats{grid-template-columns:1fr}.clean-row{grid-template-columns:1fr}.service-btn{width:100%}.service-tip{align-items:flex-start;flex-direction:column}}

/* ===== Result horizontal tabs ===== */
.result-tabs{margin-top:12px;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}
.result-tabbar{display:flex;align-items:center;justify-content:center;gap:7px;padding:10px;background:#f8fbff;border-bottom:1px solid var(--line)}
.result-tab{min-height:36px!important;padding:7px 14px!important;border:1px solid #cbd8e8!important;border-radius:9px!important;background:#fff!important;color:#334155!important;font-size:12px!important;font-weight:850!important}
.result-tab:hover{border-color:#9db8ea!important;color:#2457d6!important}.result-tab.active{background:#eef3ff!important;color:#2457d6!important;border-color:#8fb0ff!important}
.result-tab span{display:inline-grid;place-items:center;min-width:18px;height:18px;margin-left:4px;padding:0 5px;border-radius:999px;background:#e9eef7;font-size:9px}
.result-tabpanel{display:none;padding:12px}.result-tabpanel.active{display:block}.result-tabpanel .text-snapshot{margin:0;white-space:pre-wrap;line-height:1.85;text-align:justify}
@media(max-width:650px){.result-tabbar{justify-content:flex-start;overflow-x:auto}.result-tab{flex:0 0 auto;white-space:nowrap}.result-tabpanel{padding:9px}}
\n/* ===== RESULT TAB VISUAL FIX ===== */
/* Generic .active is used by status pills elsewhere; result panels must stay neutral. */
.result-tabs{background:transparent!important}
.result-tabpanel{background:transparent!important}
.result-tabpanel.active{display:block!important;background:transparent!important}
.result-tabpanel .text-snapshot{
  background:transparent!important;
  white-space:pre-line!important;
  line-height:1.85!important;
  margin:0!important;
  padding:0!important;
}
/* Ranking should use the same flat panel surface as User Input / Master Paragraph. */
.result-tabpanel .table-wrap{
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  overflow:auto!important;
}
.result-tabpanel table{border:0!important;background:transparent!important}
.result-tabpanel th{background:#f7faff!important}
/* Keep only the arrow outside KrutiDev encoding. */
.changed{white-space:nowrap}
.change-arrow{
  display:inline-block!important;
  padding:0 .20em!important;
  color:#64748b!important;
  font-family:Arial,"Segoe UI Symbol","Noto Sans Symbols",sans-serif!important;
  font-weight:900!important;
  font-size:.92em!important;
  line-height:1!important;
}


/* Login branding */
.login-head{justify-content:center;text-align:center}
.login-head>div{width:100%}
.login-head h1,.login-head p{text-align:center}

/* KrutiDev readability: +3px versus Unicode on typing/result views */
.compare.font-krutidev{font-size:21px!important}
.result-tabpanel .text-snapshot.font-krutidev{font-size:19px!important}


/* ===== Reference-hidden typing workspace ===== */
#exam.reference-hidden:not([hidden]){
  grid-template-rows:auto minmax(0,1fr)!important;
}
#exam.reference-hidden #master{display:none!important}
#exam.reference-hidden form{
  height:100%!important;
  min-height:0!important;
  display:grid!important;
  grid-template-rows:minmax(0,1fr) auto!important;
  align-content:stretch!important;
  gap:10px!important;
}
#exam.reference-hidden .typing-box.full{
  height:100%!important;
  min-height:0!important;
  margin-top:0!important;
}
#exam.reference-hidden .typing-box.full #typed{
  height:100%!important;
  min-height:0!important;
  max-height:none!important;
  resize:none!important;
}

/* Compact replacement marker; force symbol outside KrutiDev mapping. */
.change-arrow{
  padding:0 .06em!important;
  margin:0!important;
  font-family:Arial,"Segoe UI Symbol","Noto Sans Symbols",sans-serif!important;
  font-size:.86em!important;
  letter-spacing:-.04em!important;
}

/* ===== Maintenance command lock/progress ===== */
.service-busy[hidden]{display:none!important}
.service-busy{position:fixed;inset:0;z-index:9999;background:rgba(15,23,42,.35);display:grid;place-items:center;padding:20px}
.service-busy-box{width:min(440px,92vw);background:#fff;border:1px solid #cbd8e8;border-radius:15px;padding:18px;box-shadow:0 18px 60px rgba(15,23,42,.18);text-align:center}
.service-busy-box b{display:block;font-size:16px;margin-bottom:4px}.service-busy-box span{font-size:12px;color:#64748b}
.service-progress{height:8px;background:#e8eef7;border-radius:999px;overflow:hidden;margin-top:14px}
.service-progress i{display:block;width:38%;height:100%;border-radius:999px;background:#2f67e9;animation:serviceProgress 1.15s ease-in-out infinite}
@keyframes serviceProgress{0%{transform:translateX(-110%)}50%{transform:translateX(110%)}100%{transform:translateX(290%)}}

/* Master test view: one stored newline = one visible line break. */
.master-preview.full-view{white-space:pre-wrap!important}

body.steno-nav-off #typed{cursor:none!important;user-select:none!important}body.steno-nav-off #typed::selection{background:transparent!important;color:inherit!important}.space-error .rightword{color:#111}.space-error .wrongword{color:#0b9bb6;font-weight:850}.space-error .change-arrow{color:#0b9bb6;font-weight:900}.space-skip{color:#64748b;font-size:13px}
.summary8{display:grid;grid-template-columns:repeat(8,1fr);background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:12px}.summary8 .metric{text-align:center;padding:12px 6px;border-right:1px solid var(--line)}@media(max-width:900px){.summary8{grid-template-columns:repeat(4,1fr)}}@media(max-width:640px){.summary8{grid-template-columns:repeat(2,1fr)}}

.font-hindi{font-family:"PoppinsLocal","Poppins","Noto Sans Devanagari","Nirmala UI","Mangal",sans-serif}

/* Steno V2 category: Hyphen Error */
.summary9{display:grid;grid-template-columns:repeat(9,1fr);background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:12px}
.summary9 .metric{text-align:center;padding:12px 5px;border-right:1px solid var(--line)}
.hyphen-error .rightword{color:#111}
.hyphen-error .wrongword,.hyphen-error .change-arrow{color:#7c3aed;font-weight:850}
@media(max-width:980px){.summary9{grid-template-columns:repeat(5,1fr)}}
@media(max-width:650px){.summary9{grid-template-columns:repeat(3,1fr)}}

/* ===== V2 Steno result: two-table summary ===== */
.result-summary-table{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;margin:0 0 10px}
.result-summary-table table{width:100%;border-collapse:collapse;table-layout:fixed}
.result-summary-table th{padding:9px 5px;background:#f7f9fc;color:#64748b;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.04em;text-align:center;border-right:1px solid var(--line)}
.result-summary-table td{padding:11px 5px;text-align:center;font-size:16px;font-weight:850;color:#172033;border-top:1px solid var(--line);border-right:1px solid var(--line)}
.result-summary-table th:last-child,.result-summary-table td:last-child{border-right:0}
.result-summary-table .good-num{color:#078443}
.result-summary-table .bad-num{color:#d92d20}
.result-summary-caption{padding:7px 10px;background:#fbfcfe;border-bottom:1px solid var(--line);font-size:11px;font-weight:850;color:#475467}
.wrong-breakdown td{font-size:14px}
@media(max-width:720px){
  .result-summary-table{overflow-x:auto}
  .result-summary-table table{min-width:620px}
  .wrong-breakdown table{min-width:700px}
}

/* ===== Intelligent V2 comparison colors ===== */
.v2-compare .cmp-token{display:inline;line-height:1.9}
.v2-compare .miss,.v2-compare .err-missing{background:#fee2e2;color:#b42318;border-radius:4px;padding:1px 2px}
.v2-compare .add,.v2-compare .punct-extra{background:#dcfce7;color:#08743a;border-radius:4px;padding:1px 2px}
.v2-compare .err-pair{white-space:nowrap;font-weight:700}
.v2-compare .err-pair-other .bad,.v2-compare .err-other{color:#2563eb}
.v2-compare .err-pair-number .bad,.v2-compare .err-number{color:#d97706}
.v2-compare .err-pair-gender .bad,.v2-compare .err-gender{color:#7c3aed}
.v2-compare .err-pair-space .bad,.v2-compare .err-space{color:#0891b2}
.v2-compare .comma-hi{background:#fef3c7;color:#b45309;border-radius:3px;padding:0 1px}
.v2-compare .viram-hi{background:#e0e7ff;color:#4338ca;border-radius:3px;padding:0 1px}
.v2-compare .right{color:#111827}.v2-compare .err-arrow{font-family:Arial,"Segoe UI Symbol",sans-serif;padding:0 .08em}

/* Intelligence */
.intelligence-grid{grid-template-columns:180px 1fr 1fr}.intelligence-add .form-actions{justify-content:flex-end}.pill{display:inline-block;padding:3px 7px;border-radius:999px;background:#eef3ff;color:#3157a4;font-size:10px;font-weight:800}@media(max-width:760px){.intelligence-grid{grid-template-columns:1fr}}

/* V2 policy reconciliation */
.policy-error-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-top:8px;border-top:1px dashed #d7dfeb}
.policy-error{display:inline-flex;gap:4px;align-items:center;padding:3px 7px;border-radius:7px;font-size:12px;font-weight:700}
.policy-space{background:#e6f8fb;color:#087b8c}.policy-hyphen{background:#f1eafe;color:#6d28d9}.policy-error i{font-style:normal}
.v2-compare .err-pair-hyphen .bad,.v2-compare .err-pair-hyphen .err-arrow{color:#7c3aed}
.v2-compare .ignored-space{background:transparent!important;color:#64748b!important;font-weight:500!important;opacity:.75}
.v2-compare .ignored-space .bad{color:#64748b!important;font-weight:500!important}

/* ===== Result color guide + default Error List tab ===== */
.error-color-legend{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 12px;
  padding:8px 10px;background:#fbfcfe;border-bottom:1px solid var(--line);
  font-size:10px;font-weight:850;color:#52647d
}
.error-color-legend span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.error-color-legend i{width:9px;height:9px;border-radius:50%;display:inline-block;background:currentColor}
.legend-missing{color:#dc2626!important}
.legend-extra{color:#16a34a!important}
.legend-change{color:#2563eb!important}
.legend-vachan{color:#d97706!important}
.legend-gender{color:#7c3aed!important}
.legend-space{color:#0891b2!important}
.legend-hyphen{color:#7c3aed!important}

.error-list-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;
}
.error-list-card{
  border:1px solid var(--line);border-radius:11px;background:#fff;overflow:hidden;
  color:#334155!important;min-width:0
}
.error-list-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:8px 10px;background:#f8fafc;border-bottom:1px solid var(--line);
  border-left:4px solid currentColor
}
.error-list-head b{font-size:12px;color:currentColor}
.error-list-head span{
  min-width:24px;height:22px;padding:0 6px;border-radius:999px;display:inline-grid;place-items:center;
  background:#eef2f7;color:#475569;font-size:10px;font-weight:900
}
.error-items{display:flex;flex-wrap:wrap;gap:6px;padding:10px}
.error-items>span{
  display:inline-block;max-width:100%;padding:4px 7px;border:1px solid #e1e7ef;
  border-radius:7px;background:#fff;color:#26364c;font-size:12px;font-weight:700;
  word-break:break-word
}
.error-items em,.error-empty{display:block;padding:11px;color:#94a3b8;font-size:11px;font-style:normal}
.error-list-card.legend-missing .error-list-head{border-left-color:#dc2626}
.error-list-card.legend-extra .error-list-head{border-left-color:#16a34a}
.error-list-card.legend-change .error-list-head{border-left-color:#2563eb}
.error-list-card.legend-vachan .error-list-head{border-left-color:#d97706}
.error-list-card.legend-gender .error-list-head{border-left-color:#7c3aed}
.error-list-card.legend-space .error-list-head{border-left-color:#0891b2}
.error-list-card.legend-hyphen .error-list-head{border-left-color:#7c3aed}
@media(max-width:700px){.error-list-grid{grid-template-columns:1fr}.error-color-legend{justify-content:flex-start}}

/* ===== Error List compact vertical layout ===== */
.error-list-grid{
  display:flex!important;
  flex-direction:column!important;
  gap:8px!important;
}
.error-list-card{
  width:100%!important;
  min-width:0!important;
}
.error-inline-list{
  padding:10px 14px!important;
  color:#26364c!important;
  font-size:13px!important;
  font-weight:650!important;
  line-height:1.75!important;
  word-break:normal!important;
  overflow-wrap:anywhere!important;
  white-space:normal!important;
}
.error-list-head{
  padding:7px 12px!important;
}
.error-list-head b{font-size:12px!important}
.error-list-head span{
  min-width:24px!important;
  height:21px!important;
}
@media(max-width:700px){
  .error-inline-list{font-size:12px!important;padding:9px 11px!important}
}

/* Available Tests: serial + test + type + language + topic + upload date + time + action */
.available .dhead,.available .drow{
  grid-template-columns:40px minmax(230px,1.5fr) 82px 95px 110px 105px 72px 110px!important;
  min-width:940px!important;
}

/* Result comparison font controls */
.compare-review-bar{
  display:flex;align-items:center;justify-content:space-between;gap:8px;
  margin:10px 0 6px;padding:0 2px;color:#52647d;font-size:11px;font-weight:850
}
.compare-font-tools{display:flex;gap:5px}
.compare-font-tools button{
  width:38px;height:32px;padding:0;border:1px solid #cbd8e8;border-radius:9px;
  background:#fff;color:#17243a;font-weight:900;cursor:pointer
}
.compare-font-tools button:hover{border-color:#7da6f5;background:#f7faff}

/* Secure learner dictation player: custom controls remove native Save Audio UI */
.secure-audio-media{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}
.secure-audio-controls{display:grid;grid-template-columns:42px minmax(120px,1fr) 92px 38px 92px;align-items:center;gap:8px;width:100%}
.secure-audio-play,.secure-audio-mute{height:36px;padding:0;border:1px solid #cbd8e8;border-radius:9px;background:#fff;color:#17243a;font-weight:900;cursor:pointer}
.secure-audio-seek,.secure-audio-volume{height:auto!important;padding:0!important;border:0!important;box-shadow:none!important}
.secure-audio-time{font-size:11px;font-weight:800;color:#42546e;text-align:center;white-space:nowrap}
@media(max-width:620px){.secure-audio-controls{grid-template-columns:40px 1fr 82px 36px}.secure-audio-volume{display:none}}

/* Supreme Global Control */
.global-settings-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.global-settings-grid small{display:block;margin-top:5px;color:#74839a;font-size:10px;line-height:1.35}
.control-note{margin:0 0 10px;padding:8px 10px;border:1px solid #dbe5f2;border-radius:9px;background:#f8fbff;color:#53657d;font-size:11px}
@media(max-width:900px){.global-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.global-settings-grid{grid-template-columns:1fr}}

/* ===== Global Poppins typography; existing UnicodeLocal.woff2 filename retained ===== */
html,body,button,input,select,textarea,table{
  font-family:"PoppinsLocal","Poppins","Noto Sans Devanagari","Noto Sans","Segoe UI",Arial,sans-serif!important;
}
.font-english,.font-mangal,.font-hindi{
  font-family:"PoppinsLocal","Poppins","Noto Sans Devanagari","Noto Sans","Segoe UI",Arial,sans-serif!important;
}
/* KrutiDev must remain encoded in its own font. */
.font-krutidev,.font-krutidev *{
  font-family:"KrutiDev010Local","Kruti Dev 010",serif!important;
}

/* Gender gets its own clearly distinct pink; Hyphen remains violet. */
.legend-gender{color:#f40afc!important}
.error-list-card.legend-gender .error-list-head{border-left-color:#f40afc!important}
.v2-compare .err-pair-gender .bad,.v2-compare .err-gender{color:#f40afc!important}
.v2-compare .err-pair-gender .err-arrow{color:#f40afc!important}

/* Target result state */
.target-status{font-weight:900!important}
.target-achieve{color:#16a34a!important}
.target-fail{color:#dc2626!important}
.target-nil{color:#64748b!important}
.target-status small{display:inline-block;margin-left:3px;font-size:9px;color:inherit;font-weight:800}

/* Inline structural Hyphen review */
.inline-hyphen-review{white-space:nowrap}
.inline-hyphen-review .bad,.inline-hyphen-review .err-arrow{color:#7c3aed!important;font-weight:850}

/* Old policy list is intentionally retired; Error List + Compare Matter are the two review surfaces. */
.policy-error-list{display:none!important}

.field small{display:block;margin-top:4px;color:#74839a;font-size:10px;line-height:1.35}

/* V2 weighted penalty explanation */
.penalty-explain{
  max-width:1180px;margin:-5px auto 10px;padding:7px 12px;
  border:1px solid #dbe5f2;border-radius:10px;background:#fff;
  color:#53657d;font-size:10px;line-height:1.45;text-align:center
}
.penalty-main{display:flex;flex-wrap:wrap;justify-content:center;gap:5px 10px;align-items:center}
.penalty-main b{color:#17243a;font-size:11px}
.penalty-main span{color:#334155;font-weight:750}
.penalty-explain small{display:block;margin-top:2px;color:#7b8ba1;font-size:9px}

/* ===== Full-width result explanation + polished compare bar ===== */
.penalty-explain{
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
  margin:8px 0 12px!important;
  padding:10px 14px!important;
  font-size:12px!important;
  line-height:1.55!important;
}
.penalty-main{
  gap:6px 10px!important;
}
.penalty-main b{
  font-size:13px!important;
  font-weight:900!important;
}
.penalty-main span{
  font-size:12px!important;
  font-weight:750!important;
}
.penalty-explain small{
  margin-top:4px!important;
  font-size:11px!important;
  line-height:1.5!important;
}

.compare-review-bar{
  margin:10px 0 7px!important;
  padding:0!important;
}
.compare-title-chip{
  display:inline-flex!important;
  align-items:center!important;
  min-height:32px!important;
  padding:0 12px!important;
  border:1px solid #cbd8e8!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#17243a!important;
  font-size:11px!important;
  font-weight:900!important;
  box-shadow:0 1px 2px rgba(15,23,42,.03)!important;
}
.compare-font-tools button{
  min-width:42px!important;
  height:32px!important;
}

/* Supreme Global Limits should align with every other page section */
.global-limits-card{
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
  margin-left:0!important;
  margin-right:0!important;
}
.global-limits-card .global-settings-grid{
  width:100%!important;
}

/* ===== Compare: replacement categories use normal weight =====
   Missing/Extra keep their existing emphasis. */
.v2-compare .err-pair{
  font-weight:400!important;
}
.v2-compare .err-pair .right,
.v2-compare .err-pair .bad,
.v2-compare .err-pair .wrongword,
.v2-compare .err-pair .rightword,
.v2-compare .err-pair .err-arrow,
.v2-compare .err-pair .change-arrow,
.v2-compare .inline-hyphen-review,
.v2-compare .inline-hyphen-review .bad,
.v2-compare .inline-hyphen-review .err-arrow{
  font-weight:400!important;
}

.logout-inline{display:inline!important;margin:0!important;padding:0!important}
.logout-link{border:0!important;background:transparent!important;color:#1557d6!important;padding:0!important;margin:0!important;font:inherit!important;font-weight:800!important;cursor:pointer!important}
.logout-link:hover{text-decoration:underline}

/* ===== Result hierarchy refinement ===== */
.hero-mismatch-summary{
  margin-top:6px;
  color:#334155;
  font-size:12px;
  font-weight:900;
}
.error-formula-row{
  padding:9px 10px!important;
  background:#fff!important;
  color:#334155!important;
  font-size:11px!important;
  font-weight:800!important;
  text-transform:none!important;
  letter-spacing:0!important;
  text-align:center!important;
}
.cat-head{background:#f8fafc!important;font-weight:900!important}
.cat-missing{color:#dc2626!important}
.cat-extra{color:#16a34a!important}
.cat-change{color:#2563eb!important}
.cat-vachan{color:#d97706!important}
.cat-gender{color:#f40afc!important}
.cat-space{color:#0891b2!important}
.cat-hyphen{color:#7c3aed!important}
.error-color-legend{display:none!important}
.penalty-explain{display:none!important}

.compare-review-bar{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:10px!important;
}
.compare-rule-chip{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:34px!important;
  padding:0 12px!important;
  border:1px solid #cbd8e8!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#475569!important;
  box-shadow:0 1px 2px rgba(15,23,42,.03)!important;
  text-align:center!important;
  font-size:10.5px!important;
  font-weight:750!important;
  line-height:1.35!important;
}
.inline-hyphen-review,.hyphen-error{
  background:transparent!important;
}
.inline-hyphen-review{display:inline-flex!important;align-items:baseline!important;gap:2px!important;padding:0!important}
.pair-bracket{color:#64748b!important;font-weight:400!important}
@media(max-width:900px){
  .compare-review-bar{grid-template-columns:1fr auto!important}
  .compare-rule-chip{grid-column:1/-1;grid-row:2}
}

/* ===== Result summary emphasis ===== */
.hero-mismatch-summary{
  font-size:14px!important;
  line-height:1.45!important;
  color:#2563eb!important;
  font-weight:900!important;
}

/* Structural Space/Hyphen inline review */
.inline-structural-review{
  display:inline-flex!important;
  align-items:baseline!important;
  gap:2px!important;
  padding:0!important;
  background:transparent!important;
  border-radius:0!important;
  font-weight:400!important;
}
.inline-structural-review .pair-bracket,
.inline-structural-review .rightword,
.inline-structural-review .bad,
.inline-structural-review .err-arrow{
  font-weight:400!important;
}
.inline-space-review .rightword,
.inline-space-review .bad,
.inline-space-review .err-arrow{
  color:#0891b2!important;
}
.inline-hyphen-review .rightword,
.inline-hyphen-review .bad,
.inline-hyphen-review .err-arrow{
  color:#7c3aed!important;
}

/* ===== User-centric Compare Matter =====
   Normal text is the learner's typed input.
   Missing is the only master-only token injected into that stream. */
.v2-compare .cmp-token.right{font-weight:400!important}
.v2-compare .cmp-token.miss{
  color:#dc2626!important;
  text-decoration:line-through!important;
  text-decoration-thickness:1px!important;
  font-weight:400!important;
}
.v2-compare .cmp-token.add{
  color:#16a34a!important;
  font-weight:400!important;
}

/* ===== Restored V2 pair grammar on user-centric Compare ===== */
.v2-compare .err-pair{
  white-space:nowrap!important;
  font-weight:400!important;
}
.v2-compare .err-pair .pair-bracket,
.v2-compare .err-pair .pair-correct,
.v2-compare .err-pair .rightword,
.v2-compare .err-pair .err-arrow{
  color:#111827!important;
  font-weight:400!important;
  background:transparent!important;
}
.v2-compare .err-pair-other .bad{color:#2563eb!important;font-weight:400!important}
.v2-compare .err-pair-number .bad{color:#d97706!important;font-weight:400!important}
.v2-compare .err-pair-gender .bad{color:#f40afc!important;font-weight:400!important}
.v2-compare .err-pair-space .bad{color:#0891b2!important;font-weight:400!important}
.v2-compare .err-pair-hyphen .bad{color:#7c3aed!important;font-weight:400!important}

/* Paragraph-break signs are review markers, never raw matcher tokens. */
.v2-compare .para-ok,
.v2-compare .para-miss,
.v2-compare .para-extra{
  display:inline-block!important;
  margin:0 .15em!important;
  font-family:"Segoe UI Emoji","Noto Color Emoji",sans-serif!important;
  font-weight:400!important;
}
.v2-compare .para-ok{color:#2563eb!important}
.v2-compare .para-miss{color:#dc2626!important}
.v2-compare .para-extra{color:#16a34a!important}

/* Structural enhancer must follow the same pair grammar. */
.v2-compare .inline-structural-review .pair-bracket,
.v2-compare .inline-structural-review .rightword,
.v2-compare .inline-structural-review .err-arrow{
  color:#111827!important;
}
.v2-compare .inline-space-review .bad{color:#0891b2!important}
.v2-compare .inline-hyphen-review .bad{color:#7c3aed!important}

/* ===== Compare visible stream = learner input =====
   Bracket treatment stays; master replacement words/arrows are not shown inline.
   Master words remain visible only for Missing errors. */
.v2-compare .err-pair .pair-bracket{
  color:#111827!important;
  font-weight:400!important;
}
.v2-compare .err-pair-other .bad{color:#2563eb!important}
.v2-compare .err-pair-number .bad{color:#d97706!important}
.v2-compare .err-pair-gender .bad{color:#f40afc!important}
.v2-compare .err-pair-space .bad{color:#0891b2!important}
.v2-compare .err-pair-hyphen .bad{color:#7c3aed!important}

/* Result table: Target value + Status, Viram joins counted error categories. */
.target-value{font-weight:900!important;color:#334155!important}
.cat-viram{color:#64748b!important}

/* ===== Private KrutiDev / Office Converter ===== */
.converter-head{margin-bottom:14px}
.converter-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:16px;align-items:start}
.converter-card{padding:18px}
.converter-card .section-title{margin-bottom:14px}
.converter-card .section-title h2{margin:0}
.converter-card .section-title span{display:block;margin-top:3px;color:#718096;font-size:11px}
.converter-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin:10px 0 7px}
.converter-label small{color:#8190a5}
.converter-input,.converter-output{width:100%;min-height:220px;resize:vertical;border:1px solid #ccd9ea;border-radius:12px;background:#fff;padding:14px 15px;font-size:20px;line-height:1.75;box-sizing:border-box}
.converter-output{background:#fbfdff}
.converter-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:9px}
.converter-output-wrap{margin-top:16px;padding-top:13px;border-top:1px solid #e2e8f0}
.converter-upload{display:flex;min-height:175px;border:2px dashed #b9cbe2;border-radius:14px;background:#f8fbff;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:18px;cursor:pointer}
.converter-upload:hover{border-color:#6e9df0;background:#f3f7ff}
.converter-upload-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:#eaf2ff;color:#2563eb;font-size:30px;font-weight:900;margin-bottom:8px}
.converter-upload b{font-size:15px}
.converter-upload small{max-width:460px;margin:5px auto 10px;color:#718096;line-height:1.45}
.converter-upload input{max-width:100%}
.converter-mode{display:grid;gap:8px;margin:14px 0}
.converter-mode label{display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border:1px solid #d9e3ef;border-radius:10px;background:#fff;cursor:pointer}
.converter-mode input{margin-top:3px}
.converter-mode span{display:block}
.converter-mode small{display:block;margin-top:2px;color:#718096;line-height:1.4}
.converter-file-btn{width:100%;margin-top:3px}
.converter-notes{display:grid;gap:3px;margin-top:12px;padding:11px 12px;border-radius:10px;background:#f5f8fc;color:#53657d;font-size:11px;line-height:1.5}
.converter-notes b{color:#17243a}
.converter-busy{position:fixed;inset:0;background:rgba(15,23,42,.28);z-index:99;display:grid;place-items:center}
.converter-busy[hidden]{display:none!important}
.converter-busy>div{width:min(420px,calc(100vw - 40px));padding:20px;border-radius:14px;background:#fff;box-shadow:0 20px 60px rgba(15,23,42,.18);text-align:center}
.converter-busy span{display:block;color:#718096;margin:5px 0 12px}
.converter-busy i{display:block;height:5px;border-radius:10px;background:linear-gradient(90deg,#2563eb 0 35%,#dbeafe 35%);animation:converterProgress 1.2s linear infinite;background-size:220% 100%}
@keyframes converterProgress{to{background-position:-120% 0}}
@media(max-width:900px){.converter-grid{grid-template-columns:1fr}.converter-input,.converter-output{min-height:190px}}

/* ===== Scoped bulk result deletion ===== */
.result-bulk-bar{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap;margin:0 0 10px;padding:10px 12px;border:1px solid #d8e3ef;border-radius:10px;background:#f8fbff}
.result-bulk-bar>label{display:flex;align-items:center;gap:7px;font-weight:800;color:#334155;white-space:nowrap}
.result-bulk-bar>span{color:#718096;font-size:11px;flex:1}
.result-bulk-bar>div{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.result-bulk-bar .btn{min-height:34px;padding:7px 11px;font-size:11px}
.result-bulk-bar .danger-all{background:#dc2626!important;border-color:#dc2626!important;color:#fff!important}
.select-col{width:34px;text-align:center!important}
.empty-state{padding:24px;text-align:center;color:#718096}
@media(max-width:700px){.result-bulk-bar{align-items:stretch}.result-bulk-bar>span{flex-basis:100%}.result-bulk-bar>div{width:100%}.result-bulk-bar .btn{flex:1}}

/* ===== Discipline / validity UI polish ===== */
.compare-review-bar .compare-font-tools{grid-column:3}
.learner-control-card .control-note{margin:4px 0 12px}
.learner-control-card .field small{display:block;margin-top:5px;color:#74839a;font-size:10px;line-height:1.35}
@media(max-width:900px){
  .compare-review-bar .compare-font-tools{grid-column:2}
}

/* ===== Chance / Taken / Validity management polish ===== */
.available .dhead,.available .drow{
  grid-template-columns:40px minmax(220px,1.5fr) 82px 95px 105px 105px 72px 64px 112px!important;
  min-width:1010px!important;
}
.taken-count{text-align:center;font-variant-numeric:tabular-nums}
.test-locked{
  width:auto!important;min-width:104px!important;
  opacity:.68!important;cursor:not-allowed!important;
  white-space:nowrap!important;
}
.test-final-grid{margin-top:12px}
.learner-list .dhead,.learner-list .drow{
  grid-template-columns:24px 36px minmax(170px,1.2fr) 165px 82px 150px 65px 135px 130px!important;
  min-width:1120px!important;
}
.validity-cell{display:flex;align-items:center;gap:7px;min-width:0}
.validity-cell>b{min-width:28px;white-space:nowrap}
.validity-renew{display:flex;align-items:center;gap:4px}
.validity-renew input{width:54px!important;min-width:54px!important;height:30px!important;padding:3px 5px!important;font-size:11px!important}
.mini-renew{height:30px!important;min-width:58px!important;padding:0 7px!important;border-radius:8px!important;font-size:10px!important;white-space:nowrap!important}
.learner-control-details{padding:0!important;overflow:hidden}
.learner-control-details>summary{
  list-style:none;cursor:pointer;padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:10px
}
.learner-control-details>summary::-webkit-details-marker{display:none}
.learner-control-details>summary:after{content:"＋";font-weight:900;color:#2563eb}
.learner-control-details[open]>summary:after{content:"−"}
.learner-control-details>summary span{font-size:11px;color:#718096}
.learner-control-body{border-top:1px solid #dbe5f0;padding:14px 18px 18px}
@media(max-width:900px){
  .learner-control-details>summary{align-items:flex-start;flex-direction:column}
}

/* ===== Pinned target / Done / Admin session polish ===== */
.ico.pin{background:#fffaf0!important;border-color:#fed7aa!important}
.ico.pin.on{background:#fff1e6!important;border-color:#fb923c!important;box-shadow:0 0 0 2px rgba(251,146,60,.10)}
.available .drow.target-pinned{
  background:linear-gradient(90deg,#fff8e8 0,#fffdf8 54%,#fff 100%)!important;
  border-left:4px solid #f59e0b;
  box-shadow:inset 0 0 0 1px rgba(245,158,11,.08)
}
.available .drow.target-pinned:hover{background:linear-gradient(90deg,#fff4d6 0,#fffaf0 54%,#fff 100%)!important}
.today-target{display:inline-flex;align-items:center;margin-left:6px;padding:2px 7px;border-radius:999px;background:#fff0c2;color:#9a4d00;font-size:9px;font-weight:900;vertical-align:middle;white-space:nowrap}
.taken-count{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.done-mark{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;background:#dcfce7;color:#08743a;font-size:8.5px;font-weight:900;white-space:nowrap}
.session-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.session-actions .btn{min-height:32px;padding:6px 9px;font-size:10px;white-space:nowrap}

/* ===== Exact validity modal + authoritative learner test columns ===== */
.validity-cell{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  min-width:0!important;
}
.validity-cell>b{min-width:0!important;white-space:nowrap}
.ico.validity{
  background:#fff8e8!important;
  border-color:#f6c978!important;
}
.ico.validity:hover{
  background:#ffefc5!important;
  border-color:#e9a62e!important;
}
.validity-modal{
  position:fixed;inset:0;z-index:120;
  display:grid;place-items:center;
  padding:20px;background:rgba(15,23,42,.46);
  backdrop-filter:blur(2px);
}
.validity-modal[hidden]{display:none!important}
body.modal-open{overflow:hidden}
.validity-modal-card{
  position:relative;width:min(430px,calc(100vw - 32px));
  padding:24px;border:1px solid #d7e1ee;border-radius:18px;
  background:#fff;box-shadow:0 24px 70px rgba(15,23,42,.22);
}
.validity-modal-close{
  position:absolute;right:12px;top:10px;width:34px;height:34px;
  padding:0;border:0;border-radius:9px;background:#f4f7fb;color:#506078;
  font-size:22px;line-height:1;cursor:pointer
}
.validity-modal-icon{
  display:grid;place-items:center;width:48px;height:48px;margin-bottom:10px;
  border-radius:13px;background:#fff4d8;font-size:24px
}
.validity-modal-card h3{margin:0 0 5px;font-size:20px}
.validity-modal-card p{margin:0 0 16px;color:#63748c;font-size:12px;line-height:1.5}
.validity-modal-card label{display:block;margin-bottom:6px;font-weight:800}
.validity-modal-card input[type=number]{
  width:100%;height:46px;font-size:18px;font-weight:700
}
.validity-modal-card small{
  display:block;margin-top:7px;color:#718096;font-size:10.5px;line-height:1.5
}
.validity-modal-actions{
  display:flex;justify-content:flex-end;gap:8px;margin-top:18px
}

/* Final authoritative grid: # | Test | Taken | Type | Language | Topic | Upload | Time | Action */
.available .dhead,.available .drow{
  grid-template-columns:
    42px
    minmax(300px,1.65fr)
    82px
    82px
    100px
    105px
    112px
    76px
    116px!important;
  min-width:1080px!important;
  align-items:center!important;
}
.available .dhead>div,.available .drow>div{
  min-width:0;
}
.available .taken-head,
.available .taken-count{
  text-align:center!important;
  justify-self:stretch!important;
}
.available .taken-count{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
}
.available .manage{
  justify-content:flex-end!important;
}
.available .drow.target-pinned{
  border-left:4px solid #f59e0b;
}
@media(max-width:900px){
  .validity-modal-card{padding:20px}
}
