/* ==========================================================================
   Question Bank — visual language of a printed question paper:
   a mono number gutter on the left, a ruled margin on the right where the
   filing decision sits, exactly where a teacher writes marks.
   ========================================================================== */

:root{
  --paper:#F3F4EF;
  --card:#FFFEFB;
  --ink:#15231D;
  --ink-2:#46544D;
  --ink-3:#78847D;
  --rule:#D7DED7;
  --rule-2:#E8EDE7;
  --pen:#C55338;            /* teacher's red */
  --pen-wash:#FFF0EA;
  --pen-line:#F2CFC3;
  --seal:#216B57;           /* filed / confirmed */
  --seal-wash:#E7F4EE;
  --seal-line:#C8E5D9;
  --amber:#9A6810;          /* needs a decision */
  --amber-wash:#FFF6E4;
  --amber-line:#EEDBAF;
  --blue:#365F9D;
  --blue-wash:#EDF3FC;
  --blue-line:#CDDCF2;
  --shadow-sm:0 1px 2px rgba(20,35,29,.04),0 8px 24px -20px rgba(20,35,29,.28);
  --shadow-md:0 2px 4px rgba(20,35,29,.05),0 20px 48px -30px rgba(20,35,29,.42);

  --f-display:"Noto Sans Bengali",sans-serif;
  --f-body:"Noto Sans Bengali",sans-serif;
  --f-mono:"Noto Sans Bengali",sans-serif;

  --rail:244px;
  --rail-collapsed:76px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{background:
  radial-gradient(circle at 88% 4%,rgba(33,107,87,.08),transparent 24rem),
  radial-gradient(circle at 42% 100%,rgba(197,83,56,.055),transparent 30rem),
  var(--paper);color:var(--ink);font-family:var(--f-body);
  font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
code,pre,kbd,samp{font-family:var(--f-body)}
:focus-visible{outline:2px solid var(--pen);outline-offset:2px}

/* ---------- Auth ---------------------------------------------------------- */
.auth-wrap{min-height:100dvh;display:grid;place-items:center;padding:32px 20px;
  background:repeating-linear-gradient(to bottom,transparent 0 31px,var(--rule-2) 31px 32px),var(--paper)}
.auth-card{width:100%;max-width:430px;background:rgba(255,254,251,.96);border:1px solid rgba(215,222,215,.9);
  border-radius:20px;padding:40px 36px 34px;
  box-shadow:var(--shadow-md);backdrop-filter:blur(12px)}
.auth-mark{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--pen);margin-bottom:14px}
.auth-card h1{font-family:var(--f-display);font-weight:800;font-size:30px;
  letter-spacing:-.02em;line-height:1.15;margin:0 0 6px}
.auth-card p.sub{margin:0 0 26px;color:var(--ink-2);font-size:15px}
.auth-alt{margin-top:22px;font-size:14px;color:var(--ink-2);text-align:center}
.auth-alt a{color:var(--pen);font-weight:600;text-decoration:none}
.auth-alt a:hover{text-decoration:underline}

/* ---------- Fields -------------------------------------------------------- */
.field{margin-bottom:16px}
.field label,.lbl{display:block;font-family:var(--f-mono);font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px}
.field input,.inp,select.inp{width:100%;padding:11px 13px;background:#fff;
  border:1px solid var(--rule);border-radius:10px;outline:none;
  transition:border-color .15s,box-shadow .15s}
.field input:focus,.inp:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(23,33,28,.09)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  width:100%;padding:12px 18px;border:0;border-radius:10px;background:var(--ink);
  color:#F4F6F1;font-weight:600;cursor:pointer;box-shadow:0 8px 18px -14px rgba(21,35,29,.9);
  transition:transform .14s,background .15s,box-shadow .15s}
.btn:hover{background:#0E1713;box-shadow:0 12px 24px -16px rgba(21,35,29,.9);transform:translateY(-1px)}
.btn:active{transform:translateY(1px)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-sm{width:auto;padding:8px 14px;font-size:14px}
.btn-ghost{width:auto;background:transparent;color:var(--ink);border:1px solid var(--rule);
  padding:8px 14px;font-weight:500;font-size:14px}
.btn-ghost:hover{background:#fff;border-color:var(--ink-3)}
.btn-red{background:var(--pen)}
.btn-red:hover{background:#A32E20}

.alert{padding:11px 14px;border-radius:8px;font-size:14px;margin-bottom:18px;
  background:var(--pen-wash);color:#8E2A1E;border:1px solid var(--pen-line)}
.alert-ok{background:var(--seal-wash);color:#14493B;border-color:var(--seal-line)}

/* ---------- Shell --------------------------------------------------------- */
.shell{display:flex;min-height:100dvh}
.rail{width:var(--rail);flex:none;background:
  radial-gradient(circle at 10% 0%,rgba(62,139,116,.28),transparent 19rem),
  linear-gradient(180deg,#172B23 0%,#112019 100%);color:#C8D2CB;padding:26px 18px 22px;
  display:flex;flex-direction:column;gap:26px;position:sticky;top:0;height:100dvh;
  transition:width .2s ease,padding .2s ease}
.rail .logo{font-family:var(--f-display);font-weight:800;font-size:20px;color:#fff;
  letter-spacing:-.01em;line-height:1.2;text-decoration:none;padding:4px 7px 7px}
.rail .logo::before{content:"✦";display:inline-grid;place-items:center;width:28px;height:28px;
  margin-right:9px;border-radius:9px;background:linear-gradient(135deg,#F4C67D,var(--pen));
  color:#fff;font-size:13px;vertical-align:middle;box-shadow:0 8px 20px -10px rgba(244,198,125,.9)}
.rail .logo span{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;
  color:#7E8C84;text-transform:uppercase;margin-top:4px}
.rail-toggle{position:absolute;z-index:3;top:29px;right:-14px;width:28px;height:28px;padding:0;
  display:grid;place-items:center;border:1px solid rgba(215,222,215,.9);border-radius:50%;
  background:var(--card);color:var(--ink-2);box-shadow:var(--shadow-sm);cursor:pointer;
  transition:color .14s,background .14s,transform .2s ease}
.rail-toggle:hover{background:#fff;color:var(--seal)}
.rail-toggle svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;
  stroke-linecap:round;stroke-linejoin:round}
.nav{display:flex;flex-direction:column;gap:2px}
.nav a{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:10px;
  text-decoration:none;font-size:15px;color:#B4C0B8;white-space:nowrap;
  transition:background .14s,color .14s,padding .2s ease}
.nav a:hover{background:rgba(255,255,255,.06);color:#fff}
.nav a.on{background:linear-gradient(135deg,#fff,#F3F7F4);color:var(--ink);font-weight:600;
  box-shadow:0 8px 22px -18px #000}
.nav svg{width:17px;height:17px;flex:none}
.nav .pip{margin-left:auto;font-family:var(--f-mono);font-size:10px;background:var(--pen);
  color:#fff;border-radius:99px;padding:1px 6px}
.role-switcher{padding:13px 10px 0;border-top:1px solid rgba(255,255,255,.12)}
.role-switcher-title{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;
  color:#91A198;margin-bottom:8px}
.role-switcher-buttons{display:grid;grid-template-columns:1fr;gap:5px}
.role-switcher-buttons form{margin:0}
.role-switch-button{width:100%;display:flex;align-items:center;gap:8px;padding:7px 8px;border:1px solid rgba(255,255,255,.12);
  border-radius:8px;background:rgba(255,255,255,.035);color:#C8D2CB;font:600 12px/1.2 var(--f-body);cursor:pointer;text-align:left}
.role-switch-button:hover{border-color:rgba(255,255,255,.32);background:rgba(255,255,255,.08);color:#fff}
.role-switch-button.on{background:#fff;color:var(--ink);border-color:#fff}
.role-switch-short{display:grid;place-items:center;width:25px;height:22px;flex:none;border-radius:6px;
  background:rgba(255,255,255,.11);font:700 9px/1 var(--f-mono)}
.role-switch-button.on .role-switch-short{background:var(--seal-wash);color:var(--seal)}
.role-switch-note{margin-top:7px;color:#82938A;font-size:10px;line-height:1.45}
.rail-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:16px}
.rail-foot .who{font-size:13px;color:#fff;font-weight:600}
.rail-foot .mail{font-size:12px;color:#7E8C84;word-break:break-all;margin-bottom:10px}
.rail-foot a{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:#B4C0B8;text-decoration:none}
.rail-foot a:hover{color:#fff}
.role-testing-badge{display:inline-block;margin:0 0 9px;padding:3px 6px;border:1px solid rgba(244,198,125,.35);
  border-radius:5px;color:#F4C67D;font:700 9px/1.2 var(--f-mono);letter-spacing:.1em}

html.nav-collapsed .rail{width:var(--rail-collapsed);padding-right:14px;padding-left:14px}
html.nav-collapsed .rail .logo{padding-right:0;padding-left:0;font-size:0;text-align:center}
html.nav-collapsed .rail .logo::before{margin-right:0}
html.nav-collapsed .rail .logo span,html.nav-collapsed .rail-foot{display:none}
html.nav-collapsed .role-switcher{padding:10px 0 0}
html.nav-collapsed .role-switcher-title,html.nav-collapsed .role-switch-label,html.nav-collapsed .role-switch-note{display:none}
html.nav-collapsed .role-switcher-buttons{gap:4px}
html.nav-collapsed .role-switch-button{justify-content:center;padding:6px 4px}
html.nav-collapsed .nav a{position:relative;justify-content:center;gap:0;padding-right:10px;
  padding-left:10px;font-size:0}
html.nav-collapsed .nav svg{width:19px;height:19px}
html.nav-collapsed .nav .pip{position:absolute;top:2px;right:2px;padding:0 4px;font-size:9px}
html.nav-collapsed .rail-toggle{transform:rotate(180deg)}

.main{flex:1;min-width:0;padding:42px 46px 90px;max-width:1680px;margin:0 auto}
.page-head{position:relative;margin-bottom:28px;padding:27px 30px;border:1px solid rgba(215,222,215,.88);
  border-radius:20px;background:linear-gradient(135deg,rgba(255,254,251,.96),rgba(246,250,247,.9));
  box-shadow:var(--shadow-sm);overflow:hidden}
.page-head::after{content:"";position:absolute;width:190px;height:190px;right:-72px;top:-92px;
  border:34px solid rgba(33,107,87,.055);border-radius:50%;pointer-events:none}
.page-head > *{position:relative;z-index:1}
.eyebrow{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--pen);margin-bottom:8px}
.page-head h1{font-family:var(--f-display);font-weight:800;font-size:clamp(26px,3.4vw,38px);
  letter-spacing:-.025em;margin:0 0 6px;line-height:1.1}
.page-head p{margin:0;color:var(--ink-2);max-width:70ch}
.back{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-3);text-decoration:none;display:inline-block;margin-bottom:14px}
.back:hover{color:var(--pen)}

/* ---------- Scope picker on upload --------------------------------------- */
.scope{background:rgba(255,254,251,.96);border:1px solid var(--rule);border-radius:16px;
  padding:20px 22px;margin-bottom:18px;box-shadow:var(--shadow-sm)}
.scope .lbl{margin-bottom:8px}
.scope .now{font-size:15px;font-weight:600;margin-bottom:4px}
.scope .now .muted{color:var(--ink-3);font-weight:400}
.scope .note{font-size:13.5px;color:var(--ink-2);margin:8px 0 0}
.admin-secret-card{max-width:760px}
.secret-status{display:flex;flex-direction:column;gap:3px;margin:12px 0 18px;padding:13px 15px;
  border:1px solid var(--seal-line);border-radius:10px;background:var(--seal-wash)}
.secret-status.missing{border-color:var(--amber-line);background:var(--amber-wash)}
.secret-status b{font-family:var(--f-mono);font-size:14px;letter-spacing:.08em}
.secret-status span{font-size:12.5px;color:var(--ink-2)}
.secret-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.secret-form .field{flex:1;min-width:260px;margin:0}
.secret-form .btn{height:41px}
.secret-clear-form{margin-top:14px}
.model-settings{margin-top:24px;padding-top:22px;border-top:1px solid var(--rule)}
.model-note{margin:9px 0 0;color:var(--ink-3);font-size:12px;line-height:1.5}
.model-note a{color:var(--seal);font-weight:600}
.pdf-range{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:14px;
  padding:15px 18px;border:1px solid var(--rule);border-radius:12px;background:rgba(255,254,251,.96)}
.pdf-range-copy{flex:1;min-width:220px}
.pdf-range-copy .eyebrow{color:var(--ink-3);margin-bottom:4px}
.pdf-range-copy p{margin:0;color:var(--ink-2);font-size:12.5px;line-height:1.55}
.pdf-range-fields{display:flex;align-items:flex-end;gap:9px;flex:none}
.pdf-range-fields .field{width:150px;margin:0}
.pdf-range-fields input{padding:9px 11px}
.pdf-range-dash{padding-bottom:10px;color:var(--ink-3)}

/* ---------- Dropzone ------------------------------------------------------ */
.drop{position:relative;background:linear-gradient(145deg,rgba(255,254,251,.98),rgba(247,250,247,.96));
  border:1.5px dashed #BFCAC2;border-radius:20px;padding:58px 30px;text-align:center;cursor:pointer;
  box-shadow:var(--shadow-sm);transition:border-color .16s,background .16s,transform .16s,box-shadow .16s}
.drop:hover,.drop.hot{border-color:var(--pen);background:#FFFCF8;transform:translateY(-2px);box-shadow:var(--shadow-md)}
.drop .corner{position:absolute;width:14px;height:14px;border:2px solid var(--rule)}
.drop .c1{top:12px;left:12px;border-right:0;border-bottom:0}
.drop .c2{top:12px;right:12px;border-left:0;border-bottom:0}
.drop .c3{bottom:12px;left:12px;border-right:0;border-top:0}
.drop .c4{bottom:12px;right:12px;border-left:0;border-top:0}
.drop h2{font-family:var(--f-display);font-size:20px;font-weight:700;margin:0 0 6px}
.drop p{margin:0;color:var(--ink-3);font-size:14px}
.drop .hint{font-family:var(--f-mono);font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3);margin-top:16px}

/* ---------- Scanning ------------------------------------------------------ */
.scan{display:none;background:var(--card);border:1px solid var(--rule);border-radius:14px;
  padding:22px;gap:22px;align-items:center}
.scan.show{display:flex}
.scan-thumb{position:relative;width:150px;flex:none;border-radius:8px;overflow:hidden;
  border:1px solid var(--rule)}
.scan-thumb img{width:100%}
.scan-thumb::after{content:"";position:absolute;left:0;right:0;height:34%;
  background:linear-gradient(to bottom,transparent,rgba(190,58,43,.28),transparent);
  animation:sweep 1.9s cubic-bezier(.45,0,.55,1) infinite}
@keyframes sweep{0%{top:-34%}100%{top:100%}}
.scan-copy h3{font-family:var(--f-display);font-size:18px;margin:0 0 4px;font-weight:700}
.scan-copy p{margin:0;color:var(--ink-2);font-size:14px}
.scan-steps{list-style:none;margin:12px 0 0;padding:0;font-family:var(--f-mono);
  font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.scan-steps li{padding-left:16px;position:relative;line-height:2}
.scan-steps li::before{content:"·";position:absolute;left:4px;font-size:18px;line-height:1.2}
.scan-steps li.done{color:var(--seal)}
.scan-steps li.done::before{content:"✓";font-size:11px;top:1px}

@media (prefers-reduced-motion:reduce){
  .scan-thumb::after{animation:none;opacity:.25;top:33%}
  *{transition-duration:.01ms !important}
}

/* ---------- Result / review layout ---------------------------------------- */
.result{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:32px;align-items:start}
.result.question-view{grid-template-columns:repeat(2,minmax(0,1fr))}
.sheet{position:sticky;top:40px;background:var(--card);border:1px solid var(--rule);
  border-radius:18px;padding:11px;box-shadow:var(--shadow-md)}
.sheet img{border-radius:7px;width:100%}
.sheet .meta{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;color:var(--ink-3);
  padding:10px 4px 4px;display:flex;justify-content:space-between;gap:10px}

/* ---------- Reviewer source image zoom / focus --------------------------- */
.sheet-interactive{padding:0;overflow:hidden}
.sheet-interactive .meta{padding:10px 14px 11px}
.result.question-preview .sheet{max-height:calc(100dvh - 80px);overflow-y:auto;
  overscroll-behavior-y:contain;scrollbar-gutter:stable}
.result.question-preview .source-toolbar{position:sticky;top:0;z-index:3}
.source-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-height:58px;padding:9px 10px 9px 14px;border-bottom:1px solid var(--rule-2);
  background:linear-gradient(135deg,#fff,var(--seal-wash))}
.source-toolbar-title{display:flex;min-width:0;flex-direction:column;line-height:1.25}
.source-toolbar-title span{font-family:var(--f-display);font-size:14px;font-weight:700;color:var(--ink)}
.source-toolbar-title small{font-size:10.5px;color:var(--ink-3);white-space:nowrap}
.source-toolbar-actions,.source-focus-actions{display:flex;align-items:center;gap:4px}
.source-toolbar-actions button,.source-focus-actions button{width:31px;height:31px;display:grid;place-items:center;
  padding:0;border:1px solid var(--rule);border-radius:8px;background:rgba(255,255,255,.9);
  color:var(--ink-2);cursor:pointer;transition:background .14s,border-color .14s,color .14s,transform .14s}
.source-toolbar-actions button:hover,.source-focus-actions button:hover{background:#fff;border-color:var(--seal-line);
  color:var(--seal);transform:translateY(-1px)}
.source-toolbar-actions button:focus-visible,.source-focus-actions button:focus-visible{
  outline:3px solid rgba(34,111,88,.2);outline-offset:1px}
.source-toolbar-actions svg,.source-focus-actions svg{width:16px;height:16px;fill:none;stroke:currentColor;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.source-toolbar-actions .zoom-readout,.source-focus-actions .zoom-readout{width:48px;font-family:var(--f-mono);
  font-size:10px;color:var(--seal)}
.source-toolbar-actions .focus-launch{background:var(--seal);border-color:var(--seal);color:#fff}
.source-toolbar-actions .focus-launch:hover{background:#174F3E;color:#fff}

.source-image-stage{position:relative;height:clamp(360px,calc(100dvh - 245px),720px);overflow:hidden;
  background:linear-gradient(135deg,#E6EBE5,#D9E1DB);outline:none;cursor:zoom-in;touch-action:pan-y}
.result.question-preview .source-image-stage{height:auto;min-height:0;aspect-ratio:var(--source-image-aspect,3 / 4)}
.sheet-interactive .source-image-stage > img,.source-focus-stage > img{position:absolute;left:0;top:0;
  display:block;width:auto;height:auto;max-width:none;border-radius:0;transform-origin:0 0;
  pointer-events:none;user-select:none;-webkit-user-drag:none;will-change:transform}
.source-image-stage:focus-visible{box-shadow:inset 0 0 0 3px rgba(34,111,88,.5)}
.source-image-stage.is-zoomed{cursor:grab;touch-action:none}
.source-image-stage.is-dragging{cursor:grabbing}
.source-stage-hint{position:absolute;left:50%;bottom:12px;display:flex;align-items:center;gap:5px;
  max-width:calc(100% - 24px);padding:6px 8px;border:1px solid rgba(255,255,255,.25);border-radius:999px;
  background:rgba(18,31,25,.76);color:#fff;box-shadow:0 8px 20px -12px rgba(0,0,0,.75);
  backdrop-filter:blur(7px);transform:translateX(-50%);pointer-events:none;white-space:nowrap;
  font-family:var(--f-mono);font-size:8.5px;letter-spacing:.01em;transition:opacity .2s}
.source-stage-hint span+span::before{content:"·";margin-right:5px;color:#BFD0C7}
.source-image-stage.is-zoomed .source-stage-hint{opacity:.42}

.source-focus-modal{z-index:80;padding:18px}
.source-focus-box{width:min(1500px,96vw);height:min(94dvh,1000px);display:flex;min-height:0;
  flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.5);border-radius:20px;
  background:var(--card);box-shadow:0 36px 100px -36px rgba(0,0,0,.9)}
.source-focus-head{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:15px 17px 14px 21px;
  border-bottom:1px solid var(--rule);background:linear-gradient(135deg,#fff,var(--seal-wash))}
.source-focus-head .eyebrow{margin:0 0 1px;font-size:9px}
.source-focus-head h3{margin:0;font-family:var(--f-display);font-size:19px;line-height:1.3}
.source-focus-head p{margin:2px 0 0;color:var(--ink-3);font-size:12px}
.source-focus-actions{flex:none}
.source-focus-actions .source-focus-close{margin-left:5px;background:var(--ink);border-color:var(--ink);color:#fff}
.source-focus-actions .source-focus-close:hover{background:var(--pen);border-color:var(--pen);color:#fff}
.source-focus-stage{height:auto;min-height:0;flex:1;background:linear-gradient(135deg,#DCE3DD,#C9D4CC)}
.source-focus-stage .source-stage-hint{font-size:10px;padding:7px 11px}

.tally{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.tally .t{background:var(--card);border:1px solid var(--rule);border-radius:999px;
  padding:5px 13px;font-size:13px;display:flex;align-items:center;gap:7px}
.tally .t b{font-family:var(--f-mono);font-size:12px;color:var(--pen)}

.review-helper{display:flex;align-items:center;gap:12px;margin-bottom:14px;padding:12px 14px;
  border:1px solid var(--blue-line);border-radius:13px;background:linear-gradient(135deg,#fff,var(--blue-wash));
  color:#284D86;box-shadow:var(--shadow-sm)}
.review-helper-icon{width:32px;height:32px;flex:none;display:grid;place-items:center;border-radius:10px;
  background:#365F9D;color:#fff;font-family:var(--f-mono);font-size:20px;box-shadow:0 8px 16px -12px #365F9D}
.review-helper div{display:flex;flex-direction:column;line-height:1.35}
.review-helper b{font-size:13.5px}
.review-helper span:not(.review-helper-icon){font-size:12.5px;color:#506B94}
.review-added-notice{box-shadow:var(--shadow-sm)}

/* ---------- Question row (the signature element) -------------------------- */
.qlist{display:flex;flex-direction:column;gap:10px}
.q{display:grid;grid-template-columns:52px minmax(0,1fr) 226px;background:var(--card);
  border:1px solid var(--rule);border-radius:15px;overflow:hidden;box-shadow:var(--shadow-sm);
  transition:border-color .16s,box-shadow .16s,transform .16s}
.q:hover{border-color:#C5CEC7;box-shadow:var(--shadow-md);transform:translateY(-1px)}
.q.needs{border-color:var(--amber-line);background:#FFFDF8}
.q-num{font-family:var(--f-mono);font-size:13px;color:var(--ink-3);
  padding:16px 0 16px 16px;border-right:1px solid var(--rule-2)}
.q-body{padding:18px 20px;min-width:0}
.q-text{margin:0 0 9px;font-size:15.5px;line-height:1.65;word-wrap:break-word}
.q-tags{display:flex;flex-wrap:wrap;gap:6px;font-family:var(--f-mono);font-size:11px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.q-tags span{background:var(--paper);border-radius:4px;padding:3px 7px}

.q-card-actions{display:flex;align-items:stretch;gap:8px;margin-top:13px;padding-top:12px;
  border-top:1px solid var(--rule-2);flex-wrap:wrap}
.question-finalize-trigger{display:flex;align-items:center;gap:9px;min-width:220px;flex:1;
  border:1px solid var(--ink);border-radius:10px;padding:7px 12px 7px 8px;
  background:linear-gradient(135deg,var(--ink),#234B3D);color:#fff;text-align:left;cursor:pointer;
  box-shadow:0 10px 22px -18px rgba(21,35,29,.9);transition:transform .15s,box-shadow .15s,filter .15s}
.question-finalize-trigger:hover{transform:translateY(-1px);box-shadow:0 14px 25px -18px rgba(21,35,29,.95);filter:brightness(1.05)}
.question-finalize-trigger:disabled{opacity:.65;cursor:wait;transform:none}
.question-finalize-trigger .finalize-check{display:grid;place-items:center;width:27px;height:27px;flex:none;
  border-radius:8px;background:rgba(255,255,255,.14)}
.question-finalize-trigger svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2.2;
  stroke-linecap:round;stroke-linejoin:round}
.question-finalize-trigger > span:last-child{display:flex;flex-direction:column;line-height:1.25}
.question-finalize-trigger b{font-size:12.5px}
.question-finalize-trigger small{font-size:10.5px;color:#BFD4CB}
.question-add-trigger{display:flex;align-items:center;gap:9px;border:1px solid var(--seal-line);
  border-radius:10px;padding:7px 11px 7px 8px;background:linear-gradient(135deg,#fff,var(--seal-wash));
  color:#175443;text-align:left;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s}
.question-add-trigger:hover{transform:translateY(-1px);border-color:#8FCAB4;box-shadow:0 10px 22px -18px var(--seal)}
.question-add-trigger .plus{display:grid;place-items:center;width:27px;height:27px;flex:none;border-radius:8px;
  background:var(--seal);color:#fff;font:700 17px/1 var(--f-mono)}
.question-add-trigger > span:last-child{display:flex;flex-direction:column;line-height:1.25}
.question-add-trigger b{font-size:12.5px}
.question-add-trigger small{font-size:10.5px;color:#5D776E}
.question-edit-trigger{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--rule);border-radius:10px;
  background:#fff;padding:8px 10px;color:var(--ink-2);font-size:12px;cursor:pointer;transition:border-color .15s,color .15s}
.question-edit-trigger:hover{border-color:var(--ink-3);color:var(--ink)}
.question-edit-trigger svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.question-delete-trigger{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--pen-line);border-radius:10px;
  background:var(--pen-wash);padding:8px 10px;color:#8E2A1E;font-size:12px;cursor:pointer;transition:border-color .15s,background .15s}
.question-delete-trigger:hover{border-color:var(--pen);background:#FBE9E5}
.question-delete-trigger:disabled{opacity:.55;cursor:wait}
.question-delete-trigger svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
/* নকল হিসেবে বাদ পড়া প্রশ্ন — পাতায় থেকে যায়, কিন্তু নিভে থাকে। */
.q.dropped{opacity:.62;background:repeating-linear-gradient(135deg,transparent 0 9px,rgba(120,132,125,.05) 9px 18px),var(--card)}
.q.dropped .q-text{text-decoration:line-through;text-decoration-color:var(--ink-3)}
.dropped-note{font-size:11.5px;line-height:1.5;color:var(--pen);background:var(--pen-wash);
  border-radius:6px;padding:6px 9px}
.q.just-added{border-color:#64A88F;box-shadow:0 0 0 3px rgba(33,107,87,.13),var(--shadow-md);
  animation:questionArrival 1.1s ease-out}
@keyframes questionArrival{0%{transform:translateY(12px);opacity:.35}100%{transform:translateY(0);opacity:1}}

.q-margin{border-left:1px solid var(--rule-2);padding:14px 16px;display:flex;
  flex-direction:column;align-items:flex-start;gap:8px;
  background:linear-gradient(to right,rgba(237,239,232,.5),transparent)}
.q-margin.warm{background:linear-gradient(to right,var(--amber-wash),transparent)}
.chip{display:inline-block;font-size:12.5px;font-weight:600;line-height:1.3;padding:5px 10px;
  border-radius:6px;background:var(--pen-wash);color:#8E2A1E;border:1px solid var(--pen-line)}
.chip-file{background:var(--seal-wash);color:#14493B;border-color:var(--seal-line);
  font-size:12px;max-width:100%;word-break:break-word}
.q-marks{font-family:var(--f-mono);font-size:12px;color:var(--ink-3)}
.diff{font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.diff.Easy{color:var(--seal)} .diff.Medium{color:var(--amber)} .diff.Hard{color:var(--pen)}
.conf{font-family:var(--f-mono);font-size:10px;color:var(--ink-3);letter-spacing:.06em}
.tiny-link{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-3);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline}
.tiny-link:hover{color:var(--pen)}
.danger-link{color:#a12b2b}
.danger-link:hover{color:#741b1b}
.margin-label{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3)}

/* ---------- The decision box in the margin -------------------------------- */
.decide{width:100%;display:flex;flex-direction:column;gap:7px}
.decide .head{font-family:var(--f-mono);font-size:10px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--amber)}
.decide .prop{font-size:14px;font-weight:600;line-height:1.35}
.decide .under{font-size:11.5px;color:var(--ink-3);line-height:1.4;word-break:break-word}
/* AI কেন এই ট্যাগ বেছেছে — পর্যালোচক যেন যাচাই করতে পারেন। */
.decide .why{font-size:11.5px;line-height:1.5;color:var(--ink-2);background:var(--blue-wash);
  border-left:2px solid var(--blue-line);border-radius:0 6px 6px 0;padding:6px 9px;word-break:break-word}
.decide .acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}
.mini{font-size:12px;padding:5px 10px;border-radius:6px;border:1px solid var(--rule);
  background:#fff;cursor:pointer;transition:border-color .14s,background .14s}
.mini:hover{border-color:var(--ink-3)}
.mini.on{background:var(--seal);border-color:var(--seal);color:#fff}
.mini.pick.on{background:var(--ink);border-color:var(--ink)}
.decide .picked{font-size:12.5px;color:var(--seal);font-weight:600;line-height:1.4;
  word-break:break-word}
.spelling-tag-preview{display:flex;flex-direction:column;gap:6px;padding:9px;border:1px solid var(--amber-line);
  border-radius:8px;background:rgba(255,255,255,.65)}
.spelling-secondary-label{margin-top:4px;padding-top:8px;border-top:1px solid var(--rule-2)}
.spelling-secondary-tags{display:flex;flex-wrap:wrap;gap:5px}
.spelling-secondary-tags .chip2{max-width:100%;padding-right:11px;white-space:normal;word-break:break-word}
.ai-verdict{border-top:1px solid var(--rule-2);padding-top:10px;margin-top:2px}
.ai-verdict.agrees .head{color:var(--seal)}
.ai-verdict.differs .head{color:var(--blue)}
.ai-verdict.new-proposal .head{color:var(--amber)}
.ai-recheck{width:100%;border-top:1px solid var(--rule-2);padding-top:11px;margin-top:3px}
.ai-recheck-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:7px;
  border:1px solid var(--blue-line);border-radius:9px;padding:8px 9px;background:linear-gradient(135deg,#fff,var(--blue-wash));
  color:#284D86;font-size:12px;font-weight:600;line-height:1.35;cursor:pointer;
  transition:border-color .15s,transform .15s,box-shadow .15s}
.ai-recheck-btn:hover{border-color:#9DB7DB;transform:translateY(-1px);box-shadow:0 9px 18px -16px #365F9D}
.ai-recheck-btn:disabled{opacity:.65;cursor:wait;transform:none}
.ai-recheck-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;flex:none}
.ai-recheck-btn.loading svg{animation:aiPulse 1s ease-in-out infinite}
.ai-recheck-note{display:block;margin-top:5px;color:var(--ink-3);font-size:10.5px;line-height:1.35;text-align:center}
@keyframes aiPulse{50%{transform:rotate(18deg) scale(1.18);opacity:.55}}

/* ---------- Save bar ------------------------------------------------------ */
.savebar{position:sticky;bottom:0;margin-top:18px;background:var(--ink);color:#F4F6F1;
  border-radius:10px;padding:14px 18px;display:flex;align-items:center;gap:16px;
  box-shadow:0 -6px 24px -18px rgba(0,0,0,.8);flex-wrap:wrap}
.savebar .txt{font-size:14px;flex:1;min-width:200px}
.savebar .txt b{font-family:var(--f-mono);color:#F2B7AE}
.savebar .btn{width:auto;background:#fff;color:var(--ink)}
.savebar .btn:hover{background:#E9EDE6}

/* ---------- Tag tree ------------------------------------------------------ */
.browse{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:30px;align-items:start}
.tree{background:rgba(255,254,251,.97);border:1px solid var(--rule);border-radius:16px;padding:15px 13px;
  position:sticky;top:40px;max-height:calc(100dvh - 80px);overflow:auto;box-shadow:var(--shadow-sm)}
.tree-head{display:flex;align-items:baseline;justify-content:space-between;
  padding:0 6px 10px;border-bottom:1px solid var(--rule-2);margin-bottom:8px}
.tree-head span{font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3)}
.tree ul{list-style:none;margin:0;padding:0}
.tree ul ul{margin-left:9px;padding-left:9px;border-left:1px solid var(--rule-2)}
.tree li{margin:1px 0}
.node{display:flex;align-items:center;gap:4px;border-radius:6px;padding:3px 6px;
  transition:background .12s}
.node:hover{background:var(--paper)}
.node.on{background:var(--ink)}
.node.on a,.node.on .n{color:#fff}
.node a{flex:1;min-width:0;text-decoration:none;font-size:14.5px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.node .n{font-family:var(--f-mono);font-size:10.5px;color:var(--ink-3)}
.node .tw{width:15px;height:15px;flex:none;border:0;background:none;cursor:pointer;
  color:var(--ink-3);font-size:10px;line-height:1;padding:0}
.node .tw.leaf{visibility:hidden}
.node .add{opacity:0;border:0;background:none;color:var(--ink-3);cursor:pointer;
  font-size:15px;line-height:1;padding:0 2px}
.node:hover .add{opacity:1}
.node .add:hover{color:var(--pen)}
li.shut > ul{display:none}
.newtag{display:flex;gap:5px;padding:5px 6px 5px 24px}
.newtag input{flex:1;min-width:0;padding:5px 8px;font-size:13px;border:1px solid var(--rule);
  border-radius:6px;background:#fff}
.newtag button{border:0;background:var(--ink);color:#fff;border-radius:6px;padding:5px 10px;
  font-size:12px;cursor:pointer}

/* ---------- Breadcrumb + question feed ------------------------------------ */
.crumb{font-size:13.5px;color:var(--ink-3);margin-bottom:6px}
.crumb a{text-decoration:none}
.crumb a:hover{color:var(--pen)}
.crumb .sep{opacity:.5;padding:0 4px}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:18px;
  padding-bottom:16px;border-bottom:1px solid var(--rule)}
.filters select,.filters input{padding:7px 10px;font-size:13.5px;border:1px solid var(--rule);
  border-radius:7px;background:#fff}
.filters .grow{flex:1;min-width:150px}
.switch{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--ink-2);
  cursor:pointer;user-select:none}

.feed{display:flex;flex-direction:column;gap:10px}
.fq{background:var(--card);border:1px solid var(--rule);border-radius:14px;padding:17px 19px;
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;box-shadow:var(--shadow-sm);
  transition:border-color .15s,box-shadow .15s,transform .15s}
.fq:hover{border-color:#C7D0C9;box-shadow:var(--shadow-md);transform:translateY(-1px)}
.fq .txt{margin:0 0 8px;font-size:15.5px;line-height:1.65}
.question-detail-link{display:block;color:inherit;text-decoration:none;border-radius:7px;
  margin:-5px -7px 8px;padding:5px 7px;transition:background .14s,color .14s}
.question-detail-link .txt{margin-bottom:3px}
.question-detail-link > span{font-family:var(--f-mono);font-size:10px;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ink-3)}
.question-detail-link:hover{background:var(--paper);color:var(--pen)}
.question-detail-link:hover > span{color:var(--pen)}
.fq .foot{display:flex;flex-wrap:wrap;gap:6px;font-family:var(--f-mono);font-size:10.5px;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);align-items:center}
.fq .foot .tagpath{background:var(--seal-wash);color:#14493B;padding:3px 7px;border-radius:4px;
  text-transform:none;letter-spacing:.02em;font-size:11px;text-decoration:none}
.fq .foot .tagpath:hover{background:var(--seal-line)}
.fq .side{display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right}
.fq .side img{width:66px;border-radius:6px;border:1px solid var(--rule)}

/* ---------- Cards / grid -------------------------------------------------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(228px,1fr));gap:16px}
.item{background:var(--card);border:1px solid var(--rule);border-radius:16px;overflow:hidden;
  text-decoration:none;display:block;box-shadow:var(--shadow-sm);transition:transform .16s,box-shadow .16s,border-color .16s}
.item:hover{transform:translateY(-2px);box-shadow:0 14px 30px -22px rgba(23,33,28,.6)}
.item .thumb{display:block;aspect-ratio:4/3;background:var(--rule-2);overflow:hidden}
.item .thumb img{width:100%;height:100%;object-fit:cover}
.item .folder-thumb{position:relative;border-top:8px solid var(--seal-line);background:var(--seal-wash)}
.item .folder-thumb::before{content:"";position:absolute;z-index:2;left:14px;top:-15px;width:74px;height:14px;
  border-radius:7px 7px 0 0;background:var(--seal-line)}
.item .folder-thumb img{opacity:.82}
.folder-tab{position:absolute;z-index:3;left:10px;bottom:10px;padding:5px 8px;border-radius:6px;
  background:rgba(20,73,59,.9);color:#fff;font-family:var(--f-mono);font-size:10px;
  letter-spacing:.08em;text-transform:uppercase}
.item .file-thumb{display:flex;align-items:center;justify-content:center;color:var(--ink-3);
  font-family:var(--f-mono);font-size:26px;letter-spacing:.16em}
.item .body{padding:12px 14px 14px}
.item .body h3{font-size:14px;margin:0 0 4px;font-weight:600;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.item .body h3 a{color:inherit;text-decoration:none}
.item .body .row{display:flex;justify-content:space-between;font-family:var(--f-mono);
  font-size:11px;color:var(--ink-3);letter-spacing:.05em}
.card-dl{margin-top:8px;text-align:right}
.sheet .meta a{color:inherit;text-decoration:underline}
.sheet .meta a:hover{color:var(--pen)}
.card-delete{margin-top:10px;padding-top:9px;border-top:1px solid var(--rule-2);text-align:right}
.pdf-folder-head{padding-left:24px;border-left:5px solid var(--seal-line)}
.pdf-next-range{margin-top:18px;padding:16px 18px;border:1px solid var(--rule);border-radius:10px;background:rgba(255,255,255,.62)}
.pdf-next-range .pdf-range-fields{margin-top:10px}
.pdf-next-range .note{margin:10px 0 0}
.badge-fail{color:var(--pen)}
.badge-wait{color:var(--amber)}

.empty{background:var(--card);border:1px dashed var(--rule);border-radius:12px;
  padding:44px 24px;text-align:center;color:var(--ink-2)}
.empty h3{font-family:var(--f-display);font-size:19px;margin:0 0 6px;color:var(--ink)}

.recent-head{display:flex;align-items:baseline;justify-content:space-between;margin:36px 0 14px;
  border-bottom:1px solid var(--rule);padding-bottom:8px}
.recent-head h2{font-family:var(--f-display);font-size:17px;font-weight:700;margin:0}
.recent-head a{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-3);text-decoration:none}
.recent-head a:hover{color:var(--pen)}

/* ---------- Admin work history -------------------------------------------- */
.worktable-wrap{overflow-x:auto;background:var(--card);border:1px solid var(--rule);
  border-radius:14px;box-shadow:var(--shadow-sm)}
.worktable{width:100%;border-collapse:collapse;min-width:720px}
.worktable th{font-family:var(--f-mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;
  color:var(--ink-3);text-align:right;font-weight:600;padding:13px 12px;border-bottom:1px solid var(--rule)}
.worktable th:first-child{text-align:left}
.worktable td{padding:12px;font-size:14px;text-align:right;border-bottom:1px solid var(--rule-2);
  font-family:var(--f-mono)}
.worktable td:first-child{text-align:left;font-family:var(--f-body)}
.worktable tr:last-child td{border-bottom:0}
.worktable tbody tr:hover{background:var(--paper)}
.worktable tr.is-idle td{color:var(--ink-3)}
.worktable a{text-decoration:none}
.worktable a:hover{color:var(--pen)}
.worktable-role{display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.06em;color:var(--ink-3)}
.worktable-when{font-size:12px;color:var(--ink-3);white-space:nowrap}

.worklog{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.worklog li{display:flex;flex-wrap:wrap;align-items:baseline;gap:9px;padding:9px 12px;
  border-bottom:1px solid var(--rule-2);font-size:13.5px}
.worklog li:hover{background:var(--card)}
.worklog li:last-child{border-bottom:0}
.worklog-time{font-family:var(--f-mono);font-size:11px;color:var(--ink-3);min-width:104px;flex:none}
.worklog-who{font-weight:600;min-width:110px}
.worklog-what{color:var(--seal)}
.worklog-detail{color:var(--ink-2);flex:1;min-width:160px;word-break:break-word}
.worklog-ref{font-family:var(--f-mono);font-size:10.5px;color:var(--ink-3);white-space:nowrap}

/* ---------- Tag picker dialog --------------------------------------------- */
.modal{position:fixed;inset:0;background:rgba(17,32,25,.62);display:none;backdrop-filter:blur(5px);
  place-items:center;padding:20px;z-index:50}
.modal.show{display:grid}
.modal-box{background:var(--card);border:1px solid rgba(255,255,255,.6);border-radius:18px;width:100%;max-width:500px;
  padding:24px;max-height:86dvh;display:flex;flex-direction:column;box-shadow:0 30px 80px -34px rgba(0,0,0,.7)}
.modal-box h3{font-family:var(--f-display);font-size:19px;margin:0 0 4px;font-weight:700}
.modal-box .sub{margin:0 0 14px;font-size:13.5px;color:var(--ink-2)}
.pick-list{flex:1;overflow:auto;border:1px solid var(--rule);border-radius:8px;margin-bottom:12px}
.pick-list button{display:block;width:100%;text-align:left;border:0;background:none;
  padding:8px 12px;font-size:14px;cursor:pointer;border-bottom:1px solid var(--rule-2)}
.pick-list button:hover{background:var(--paper)}
.pick-list button:last-child{border-bottom:0}
.pick-list .path{display:block;font-size:11px;color:var(--ink-3);font-family:var(--f-mono)}
.pick-none{padding:18px 12px;text-align:center;color:var(--ink-3);font-size:13.5px}
.modal-acts{display:flex;gap:8px;justify-content:flex-end}

/* ---------- Add one question dialog -------------------------------------- */
body.modal-open{overflow:hidden}
.question-add-box{max-width:720px;padding:0;overflow:hidden;max-height:92dvh}
.question-add-head{display:flex;gap:14px;align-items:flex-start;padding:24px 26px 18px;
  border-bottom:1px solid var(--rule-2);background:linear-gradient(135deg,#fff,var(--seal-wash))}
.question-add-head .eyebrow{margin:0 0 2px;color:var(--seal)}
.question-add-head h3{font-size:23px;margin-bottom:2px}
.question-add-head .sub{margin:0}
.question-add-icon{width:42px;height:42px;flex:none;display:grid;place-items:center;border-radius:13px;
  background:var(--seal);color:#fff;box-shadow:0 12px 24px -16px var(--seal)}
.question-add-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
#questionAddForm{padding:20px 26px 24px;overflow-y:auto}
.question-add-grid{display:grid;grid-template-columns:1fr 1fr 1.25fr;gap:12px}
.question-add-grid .field{margin-bottom:13px}
.question-add-box textarea.inp{width:100%;padding:10px 12px;border:1px solid var(--rule);border-radius:10px;
  background:#fff;resize:vertical;line-height:1.55}
.question-add-text{min-height:112px}
.required-mark,.optional-mark{float:right;font-family:var(--f-body);font-size:10px;letter-spacing:0;text-transform:none}
.required-mark{color:var(--pen)} .optional-mark{color:var(--ink-3)}
.question-add-options{margin:-2px 0 16px;padding:13px;border:1px solid var(--blue-line);
  border-radius:11px;background:var(--blue-wash)}
.question-add-section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.question-add-section-head .lbl{margin:0;color:#39557F}
.question-add-section-head small{display:block;color:#617697;font-size:11.5px}
.question-add-option-list{display:flex;flex-direction:column;gap:7px}
.question-add-option-row{display:grid;grid-template-columns:28px 48px minmax(0,1fr) 28px;gap:6px;align-items:center}
.question-add-option-row input:not([type=radio]){width:100%;min-width:0;padding:7px 9px;border:1px solid var(--blue-line);
  border-radius:7px;background:#fff;font-size:13.5px}
.option-correct{display:grid;place-items:center;cursor:pointer}
.option-correct input{position:absolute;opacity:0;pointer-events:none}
.option-correct span{width:18px;height:18px;border:2px solid #A9BAD2;border-radius:50%;background:#fff;position:relative}
.option-correct input:checked + span{border-color:var(--seal)}
.option-correct input:checked + span::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--seal)}
.option-remove{width:27px;height:27px;border:0;border-radius:7px;background:rgba(54,95,157,.1);
  color:#5A7091;cursor:pointer;font-size:17px;line-height:1}
.option-remove:hover{background:var(--pen-wash);color:var(--pen)}
.question-add-error{margin:0 0 12px}
.question-add-acts{align-items:center;border-top:1px solid var(--rule-2);padding-top:16px;margin-top:4px}
.question-add-acts .btn{width:auto}
.question-add-pending-note{margin-right:auto;color:var(--ink-3);font-size:11.5px}
.question-add-pending-note span{color:var(--amber);font-size:9px;margin-right:4px}

/* ---------- Duplicate question dialog ------------------------------------- */
.dup-box{max-width:1000px;max-height:92dvh;gap:14px}
.dup-head{display:flex;gap:13px;align-items:flex-start}
.dup-head h3{margin:0 0 2px}
.dup-head .sub{margin:0}
.dup-head-icon{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:12px;
  background:var(--amber-wash);color:var(--amber);border:1px solid var(--amber-line)}
.dup-head-icon svg{width:19px;height:19px}
.dup-score{margin-left:auto;flex:none;font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;
  color:var(--amber);background:var(--amber-wash);border:1px solid var(--amber-line);
  border-radius:999px;padding:5px 11px;white-space:nowrap}
.dup-progress{font-family:var(--f-mono);font-size:11px;letter-spacing:.06em;color:var(--ink-3)}
.dup-pair{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;
  overflow-y:auto;padding:1px}
.dup-card{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid var(--rule);
  border-radius:13px;padding:15px 16px}
.dup-card.is-new{border-color:var(--amber-line);background:#FFFDF8}
.dup-card header{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}
.dup-badge{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--amber);background:var(--amber-wash);border-radius:5px;padding:3px 7px}
.dup-badge.old{color:var(--ink-3);background:var(--rule-2)}
.dup-meta{font-family:var(--f-mono);font-size:10.5px;color:var(--ink-3)}
.dup-body{flex:1;min-height:0;max-height:34dvh;overflow-y:auto}
.dup-text{margin:0;font-size:14.5px;line-height:1.6;white-space:pre-wrap;word-wrap:break-word}
.dup-options{list-style:none;margin:9px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}
.dup-options li{font-size:13.5px;background:var(--paper);border-radius:6px;padding:5px 9px}
.dup-options li.correct{background:var(--seal-wash);color:#14493B;font-weight:600}
.dup-options li b{font-family:var(--f-mono);font-size:11.5px;margin-right:5px}
.dup-answer{margin:9px 0 0;font-size:13.5px;color:var(--ink-2);background:var(--paper);
  border-radius:6px;padding:6px 9px}
.dup-card footer{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline;justify-content:space-between;
  border-top:1px solid var(--rule-2);padding-top:9px}
.dup-tag{font-size:11.5px;color:var(--ink-3);word-break:break-word}
.dup-drop{border:1px solid var(--pen-line);background:var(--pen-wash);color:var(--pen);
  border-radius:9px;padding:9px 12px;font-size:13px;font-weight:700;cursor:pointer;
  transition:background .14s,border-color .14s}
.dup-drop:hover:not(:disabled){background:var(--pen);border-color:var(--pen);color:#fff}
.dup-drop:disabled{opacity:.55;cursor:wait}
.dup-error{margin:0}
.dup-acts{align-items:center;justify-content:space-between;flex-wrap:wrap;
  border-top:1px solid var(--rule-2);padding-top:13px}
.dup-acts .btn{width:auto}
.dup-note{color:var(--ink-3);font-size:11.5px}

/* ---------- MCQ options / answer ------------------------------------------ */
.q-options{list-style:none;margin:0 0 9px;padding:0;display:flex;flex-direction:column;gap:4px}
.q-options li{font-size:14px;background:var(--paper);border-radius:6px;padding:6px 10px}
.q-options li.correct{background:var(--seal-wash);color:#14493B}
.q-options li b{font-family:var(--f-mono);margin-right:6px}
.q-answer{margin:0 0 9px;font-size:14px;color:var(--ink-2);background:var(--paper);
  border-radius:6px;padding:8px 10px}
.q-options li.correct::after{content:'✓ সঠিক';float:right;font-size:11px;font-weight:700;color:#14493B}

/* Two explanations: raw (printed) and AI-written. */
.q-explain{margin:0 0 9px;font-size:14px;background:var(--paper);border-radius:6px;
  padding:8px 10px;border-left:3px solid var(--rule)}
.q-explain-ai{border-left-color:var(--seal,#1D5F4E)}
.q-explain-label{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:3px}
.q-explain-body{color:var(--ink-2);white-space:normal}
.q-explain .tiny-link{margin-top:5px}
.q-explain-alt{border-left-color:var(--ink-3,#8a8578)}
.q-explain-add{margin:0 0 9px}
.alt-expl-input{width:100%;box-sizing:border-box;font:inherit;padding:8px 10px;border:1px solid var(--rule,#d8d3c6);border-radius:6px;background:#fff;resize:vertical}

/* Cascading scope dropdowns on the upload page. */
.scope-cascade{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* ---------- Extras: concept tags, references, image crops, comments ------- */
.q-extras{grid-column:1/-1;border-top:1px solid var(--rule-2);padding:12px 16px 14px;
  display:flex;flex-direction:column;gap:10px;background:rgba(237,239,232,.35)}
.extras-row{display:flex;flex-wrap:wrap;gap:18px}
.extras-row.imgs{gap:14px}
.chipgroup{display:flex;flex-wrap:wrap;align-items:center;gap:6px;flex:1;min-width:220px}
.chipgroup-label{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-3);margin-right:2px}
.chip2{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;background:#fff;
  border:1px solid var(--rule);border-radius:999px;padding:4px 6px 4px 11px}
.chip2.ref{background:var(--amber-wash);border-color:var(--amber-line);color:#6B4A0C}
.chip2.suggest{background:var(--pen-wash);border-color:var(--pen-line);color:#8E2A1E}
.chip2 button{border:0;background:rgba(0,0,0,.08);color:inherit;border-radius:999px;
  width:17px;height:17px;line-height:1;cursor:pointer;font-size:12px}
.chip-add{border:1px dashed var(--rule);background:none;border-radius:999px;padding:4px 11px;
  font-size:12.5px;color:var(--ink-3);cursor:pointer}
.chip-add:hover{border-color:var(--pen);color:var(--pen)}

.cropbox{display:flex;flex-direction:column;gap:6px;min-width:140px}
.cropbox img{width:140px;border-radius:7px;border:1px solid var(--rule)}
.cropbox-acts{display:flex;gap:10px}

.comments{width:100%}
.comment-list{margin-top:8px;display:flex;flex-direction:column;gap:8px}
.comment-row{background:#fff;border:1px solid var(--rule-2);border-radius:8px;padding:8px 11px}
.comment-row .who{font-size:12.5px;margin-bottom:2px}
.comment-row .body{font-size:13.5px;line-height:1.55}
.comment-form{display:flex;gap:8px;align-items:flex-start;margin-top:4px}
.comment-form textarea{flex:1;min-height:38px;padding:8px 10px;border:1px solid var(--rule);
  border-radius:7px;background:#fff;resize:vertical;font-size:13.5px}

/* ---------- Inline field editor -------------------------------------------- */
.edit-form{margin-top:10px;padding:12px;border:1px solid var(--rule);border-radius:9px;background:#fff}
.edit-form textarea{width:100%;padding:9px 11px;border:1px solid var(--rule);border-radius:7px;
  background:#fff;resize:vertical;font-family:inherit;font-size:14.5px}
.edit-form select{width:100%;padding:8px 10px;border:1px solid var(--rule);border-radius:7px;background:#fff}
.ef-options{margin-top:4px}
.ef-opt-rows{display:flex;flex-direction:column;gap:6px;margin:6px 0}
.ef-opt-row{display:flex;gap:6px;align-items:center}
.ef-opt-row .ef-opt-label{width:52px;flex:none}
.ef-opt-row .ef-opt-text{flex:1;min-width:0}
.ef-opt-row input[type=text],.ef-opt-row input:not([type]){padding:7px 9px;border:1px solid var(--rule);
  border-radius:6px;background:#fff;font-size:13.5px}
.ef-opt-correct{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--ink-3);white-space:nowrap}

/* ---------- Crop tool ------------------------------------------------------- */
.crop-box{max-width:760px}
.crop-stage{position:relative;max-height:70dvh;overflow:auto;border:1px solid var(--rule);
  border-radius:8px;background:var(--paper);user-select:none;touch-action:none}
.crop-stage img{display:block;max-width:100%;pointer-events:none}
.crop-rect{position:absolute;border:2px solid var(--pen);background:rgba(190,58,43,.12);cursor:move}
.crop-rect .h{position:absolute;width:12px;height:12px;background:#fff;border:2px solid var(--pen);
  border-radius:50%}
.crop-rect .h-nw{top:-7px;left:-7px;cursor:nwse-resize}
.crop-rect .h-ne{top:-7px;right:-7px;cursor:nesw-resize}
.crop-rect .h-sw{bottom:-7px;left:-7px;cursor:nesw-resize}
.crop-rect .h-se{bottom:-7px;right:-7px;cursor:nwse-resize}

/* ---------- Responsive ---------------------------------------------------- */
@media (max-width:1000px){
  .result,.browse{grid-template-columns:1fr}
  .result.question-view{grid-template-columns:1fr}
  .sheet,.tree{position:static;max-height:none}
  .result.question-preview .sheet{max-height:none;overflow:visible;
    overscroll-behavior-y:auto;scrollbar-gutter:auto}
  .sheet{max-width:420px}
}
@media (max-width:760px){
  .shell{flex-direction:column}
  .rail{width:100%;height:auto;position:static;flex-direction:row;align-items:center;gap:12px;
    padding:12px 16px;overflow-x:auto}
  .rail-toggle{display:none}
  html.nav-collapsed .rail{width:100%;padding:12px 16px}
  html.nav-collapsed .rail .logo{padding:4px 7px 7px;font-size:20px;text-align:left}
  html.nav-collapsed .rail .logo::before{margin-right:9px}
  html.nav-collapsed .nav a{justify-content:flex-start;gap:10px;padding:7px 10px;font-size:14px}
  html.nav-collapsed .nav svg{width:17px;height:17px}
  html.nav-collapsed .nav .pip{position:static;margin-left:auto;padding:1px 6px;font-size:10px}
  html.nav-collapsed .rail-foot{display:block}
  html.nav-collapsed .role-switcher{padding:0 0 0 10px;border-top:0;border-left:1px solid rgba(255,255,255,.12)}
  html.nav-collapsed .role-switcher-buttons{display:flex}
  html.nav-collapsed .role-switch-button{padding:6px}
  .rail .logo span{display:none}
  .nav{flex-direction:row;gap:4px}
  .nav a{padding:7px 10px;font-size:14px;white-space:nowrap}
  .role-switcher{margin:0;padding:0 0 0 10px;border-top:0;border-left:1px solid rgba(255,255,255,.12)}
  .role-switcher-title,.role-switch-label,.role-switch-note{display:none}
  .role-switcher-buttons{display:flex;gap:4px}
  .role-switch-button{padding:6px}
  .rail-foot{margin:0 0 0 auto;border:0;padding:0}
  .rail-foot .who,.rail-foot .mail{display:none}
  .main{padding:22px 14px 80px}
  .page-head{padding:22px 20px;border-radius:16px}
  .pdf-range{align-items:stretch;flex-direction:column;gap:12px}
  .pdf-range-fields{width:100%}
  .pdf-range-fields .field{width:auto;flex:1}
  .q{grid-template-columns:40px minmax(0,1fr)}
  .q-margin{grid-column:1/-1;border-left:0;border-top:1px solid var(--rule-2);background:var(--paper)}
  .q-margin.warm{background:var(--amber-wash)}
  .fq{grid-template-columns:1fr}
  .fq .side{flex-direction:row;align-items:center;justify-content:flex-start}
  .scan{flex-direction:column;align-items:flex-start}
  .question-add-box{max-height:96dvh}
  .question-add-head{padding:19px 18px 15px}
  #questionAddForm{padding:17px 18px 20px}
  .question-add-grid{grid-template-columns:1fr 1fr}
  .question-add-grid .field:last-child{grid-column:1/-1}
  .question-add-acts{align-items:stretch}
  .question-add-pending-note{width:100%;margin:0 0 3px}
  .question-add-trigger{flex:1;min-width:210px}
  .source-toolbar{padding-left:12px}
  .source-toolbar-title small{display:none}
  .source-image-stage{height:min(58dvh,520px);min-height:330px}
  .source-stage-hint{bottom:9px}
  .source-stage-hint span:first-child{display:none}
  .source-stage-hint span:nth-child(2)::before{display:none}
  .source-focus-modal{padding:7px}
  .source-focus-box{width:100%;height:calc(100dvh - 14px);border-radius:15px}
  .source-focus-head{align-items:flex-start;padding:11px 10px 10px 14px;gap:8px}
  .source-focus-head h3{font-size:15px}
  .source-focus-head p,.source-focus-head .eyebrow{display:none}
  .source-focus-actions{gap:3px}
  .source-focus-actions button{width:29px;height:29px}
  .source-focus-actions .zoom-readout{width:43px}
  .source-focus-stage{height:auto;min-height:0}
}

/* উদ্দীপক — shared stimulus above the parts of a creative question */
.stimulus{background:var(--seal-wash);border:1px solid var(--seal-line);border-radius:12px;padding:14px 18px;margin:18px 0 8px}
.stimulus-label{font-family:var(--f-mono);font-size:10.5px;letter-spacing:.12em;color:#14493B;margin-bottom:6px}
.stimulus-text{margin:0 0 8px;font-size:15.5px;line-height:1.7;white-space:normal}
.stimulus-missing{background:transparent;border-style:dashed}
.stimulus-input{width:100%;box-sizing:border-box;font:inherit;line-height:1.6;padding:8px;margin:4px 0 8px}
.fq.group{display:block}
.fq.group .stimulus{margin:0 0 12px}
.fq.group .part{padding:10px 0;border-top:1px solid var(--rule)}
.fq.group .part .num{font-weight:600;margin-right:6px}
.stimulus-figure{width:100%;max-width:560px;margin:6px 0 10px;border:1px solid var(--rule);border-radius:8px;background-color:#fff;background-repeat:no-repeat}
