/* =====================================================================
   TestKav Skills - Exam Taking UI
   Inspired by the mature exam app visual language, rebuilt for testkav_skills.
   Templates live in /templates and assets live in /statics.
   ===================================================================== */
:root{
  --tk-gold:var(--sk-amber);
  --tk-gold-2:var(--sk-amber);
  --tk-blue:var(--sk-amber);
  --tk-blue-2:var(--sk-amber-deep);
  --tk-blue-deep:var(--sk-amber-deep);
  --tk-teal:var(--sk-amber);
  --tk-green:var(--sk-ok);
  --tk-red:var(--sk-danger);
  --tk-orange:var(--sk-amber-deep);
  --tk-violet:var(--sk-amber-deep);
  --tk-ink:var(--sk-ink);
  --tk-text:var(--sk-ink-soft);
  --tk-muted:var(--sk-ink-faint);
  --tk-soft:var(--sk-surface-2);
  --tk-soft-2:var(--sk-surface-3);
  --tk-border:var(--sk-line);
  --tk-border-2:var(--sk-line);
  --tk-card:var(--sk-surface);
  --tk-shadow:0 24px 70px rgba(0,0,0,.12);
  --tk-shadow-soft:0 14px 38px rgba(0,0,0,.08);
}

.market-body{background:var(--sk-bg)}
.taking-shell{width:min(1180px,calc(100% - 32px));margin:34px auto}.taking-shell.narrow{width:min(960px,calc(100% - 32px))}
.exam-intro-card,.step-card,.review-card,.result-hero,.metric,.exam-status-panel,.question-panel,.access-row,.empty-state{background:var(--sk-surface);border:1px solid var(--sk-line);border-radius:11px;box-shadow:var(--tk-shadow-soft);backdrop-filter:blur(12px)}
.exam-intro-card{display:grid;grid-template-columns:340px 1fr;overflow:hidden;min-height:360px}.exam-intro-media{background:linear-gradient(140deg,var(--sk-amber-soft),var(--sk-surface-2));position:relative;overflow:hidden}.exam-intro-media::after{content:"";position:absolute;inset:auto -40px -70px auto;width:220px;height:220px;border-radius:50%;background:rgba(255,194,24,.55)}.exam-intro-media img{width:100%;height:100%;object-fit:cover}.default-media{height:100%;display:grid;place-items:center;font-size:70px;font-weight:680;color:var(--sk-amber-deep);letter-spacing:-2px}.exam-intro-content{padding:38px}.eyebrow{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:999px;background:var(--sk-amber-soft);color:var(--sk-amber-deep);font-weight:580;font-size:12px}.exam-intro-content h1,.step-card h1,.page-title-row h1{margin:15px 0 12px;color:var(--tk-ink);letter-spacing:-.5px}.exam-intro-content p,.page-title-row p{font-size:15px;color:var(--tk-muted);line-height:2}.meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0}.meta-grid span,.notice-box{background:var(--sk-surface-2);border:1px solid var(--sk-line);border-radius:9px;padding:14px 16px;color:var(--sk-ink-soft)}.notice-box{border-inline-start:5px solid var(--sk-amber);box-shadow:inset 0 0 0 1px rgba(255,194,24,.05)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:9px;padding:11px 18px;font-weight:680;cursor:pointer;text-decoration:none;transition:.18s ease;white-space:nowrap}.btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px rgba(0,0,0,.10)}.btn.primary{background:var(--sk-amber);color:#1a1306}.btn.primary:hover{background:var(--sk-amber-deep)}.btn.ghost{background:var(--sk-surface-2);color:var(--sk-ink);border:1px solid var(--sk-line)}.btn.danger{background:var(--sk-danger);color:#fff}.btn.large{padding:14px 24px}.btn.small{padding:8px 12px;font-size:12px;border-radius:9px}.btn.full{width:100%}.step-card{padding:36px}.rich-box,.rules-list article{background:var(--sk-surface-2);border:1px solid var(--sk-line);border-radius:9px;padding:24px;margin-top:18px;line-height:2}.rules-list{display:grid;gap:14px}.rules-list article h3{margin-top:0}.step-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:24px}.accept-check{display:flex;gap:10px;align-items:center;width:100%;font-weight:580;color:var(--sk-ink)}.accept-check input{width:18px;height:18px;accent-color:var(--tk-blue)}

/* Official exam room */
.exam-room{width:min(1320px,calc(100% - 28px));margin:24px auto 34px;display:grid;grid-template-columns:300px 1fr;gap:20px}.exam-status-panel{padding:18px;height:max-content;position:sticky;top:18px;border-radius:11px}.exam-status-panel::before{content:"TestKav Exam";display:block;color:var(--sk-ink-faint);font-weight:580;font-size:11px;letter-spacing:.5px;text-transform:uppercase;margin:2px 4px 14px}.timer-card,.progress-card,.anti-card{background:var(--sk-surface-2);border:1px solid var(--sk-line);border-radius:9px;padding:17px;margin-bottom:13px;position:relative;overflow:hidden}.timer-card::before{content:"";position:absolute;right:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,var(--tk-gold),var(--tk-orange))}.timer-card span,.progress-card span{display:block;color:var(--sk-ink-soft);font-size:13px;font-weight:600}.timer-card strong{font-size:34px;color:var(--tk-blue-deep);letter-spacing:1px;line-height:1.4}.progress-card b{font-weight:680;color:var(--tk-ink)}.progress-line{height:10px;background:var(--sk-surface-3);border-radius:999px;overflow:hidden;margin-top:13px}.progress-line i{display:block;height:100%;background:linear-gradient(90deg,var(--tk-teal),var(--tk-blue-2),var(--tk-violet));border-radius:999px}.anti-card{font-weight:680;text-align:center}.anti-card.advanced,.anti-card.proctored{background:var(--sk-danger-soft);color:var(--sk-danger)}.anti-card.simple{background:var(--sk-warn-soft);color:var(--sk-warn)}.anti-card.open_book{background:var(--sk-ok-soft);color:var(--sk-ok)}.anti-card.none{background:var(--sk-surface-2);color:var(--sk-ink-soft)}
.question-panel{padding:0;min-height:70vh;overflow:hidden;border-radius:11px}.question-panel::before{content:"";display:block;height:6px;background:linear-gradient(90deg,var(--tk-gold),var(--tk-teal),var(--tk-blue-2))}.question-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:22px 26px;border-bottom:1px solid var(--sk-line);background:var(--sk-surface)}.question-head-left,.question-head-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pill{display:inline-flex;align-items:center;gap:6px;padding:8px 13px;border-radius:999px;background:var(--sk-amber-soft);color:var(--sk-amber-deep);font-weight:680;font-size:12px}.pill.muted{background:var(--sk-surface-2);color:var(--sk-ink-soft)}.pill.gold{background:var(--sk-amber-soft);color:var(--sk-amber-deep)}.question-body{font-size:17px;line-height:2.1;color:var(--sk-ink);background:var(--sk-surface-2);border:1px solid var(--sk-line);border-radius:11px;padding:26px 30px;margin:24px 26px 20px;position:relative;overflow:hidden}.question-body::before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--sk-amber),var(--sk-amber-deep))}.question-body img{max-width:100%;height:auto;border-radius:10px;box-shadow:0 8px 26px rgba(0,0,0,.12)}.question-panel form[data-answer-form],.practice-mode .question-panel form{padding:0 26px 26px}textarea{width:100%;border:1px solid var(--sk-line-strong);border-radius:9px;padding:16px;font-size:15px;line-height:1.9;box-sizing:border-box;resize:vertical;background:#fff;color:var(--tk-ink)}textarea:focus{outline:0;border-color:var(--tk-blue-2);box-shadow:0 0 0 4px var(--sk-amber-soft)}.autosave-state{margin-top:13px;color:var(--sk-ink-soft);font-size:13px;min-height:22px}.autosave-state::before{content:"●";margin-left:6px;color:var(--tk-green)}.question-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px;padding-top:18px;border-top:1px solid var(--tk-border-2)}.exam-room form[data-safe-leave] button,.question-actions button{min-height:44px}

/* Result and review */
.result-hero{padding:34px;margin-bottom:18px;background:var(--sk-surface);position:relative;overflow:hidden}.result-hero::after{content:"";position:absolute;left:-80px;bottom:-90px;width:230px;height:230px;border-radius:50%;background:rgba(255,194,24,.25)}.result-status{display:inline-flex;padding:10px 16px;border-radius:999px;background:var(--sk-amber);color:#1a1306;font-weight:680}.result-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.metric{padding:21px}.metric span{display:block;color:var(--sk-ink-soft);font-weight:600}.metric strong{display:block;font-size:25px;color:var(--tk-blue-deep);margin-top:8px}.result-actions{display:flex;gap:12px;margin-top:18px;flex-wrap:wrap}.result-hero.disqualified{background:linear-gradient(160deg,var(--sk-surface),var(--sk-danger-soft))}.result-hero.passed{background:linear-gradient(160deg,var(--sk-surface),var(--sk-ok-soft))}.result-hero.failed{background:linear-gradient(160deg,var(--sk-surface),var(--sk-amber-soft))}.page-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.review-list{display:grid;gap:16px}.review-card{padding:22px}.review-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.answer-box,.grading-comment,.practice-explanation{background:var(--sk-surface-2);border:1px solid var(--sk-line);border-radius:9px;padding:17px;margin-top:12px}.answer-box h4,.practice-explanation h4{margin:0 0 10px}.selected-answer{padding:10px 0;border-bottom:1px solid var(--sk-line)}.question-tools,.practice-tools{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px;align-items:flex-start}.practice-tools{display:grid}.note-form{margin-top:12px;width:100%}.issue-report-box{margin-top:12px;background:var(--sk-warn-soft);border:1px solid var(--sk-warn-soft);border-radius:9px;padding:13px 15px}.issue-report-box summary{cursor:pointer;font-weight:680;color:var(--sk-warn)}.issue-report-box textarea{margin-top:10px;background:#fff}.muted{color:var(--sk-ink-soft)}.access-row{padding:19px;display:flex;align-items:center;justify-content:space-between;gap:12px}.empty-state{padding:32px;text-align:center;color:var(--sk-ink-soft);border-style:dashed}.grade-fields p,.survey-form p{display:grid;gap:8px}.survey-form ul{list-style:none;padding:0;display:grid;gap:8px}.practice-mode .question-panel::before{background:linear-gradient(90deg,var(--tk-green),var(--tk-teal),var(--tk-gold))}.practice-explanation{border-right:5px solid var(--tk-green)}

@media(max-width:980px){.exam-intro-card,.exam-room{grid-template-columns:1fr}.exam-status-panel{position:static;order:-1}.result-grid,.meta-grid{grid-template-columns:1fr}.question-head,.page-title-row,.access-row,.review-head{align-items:flex-start;flex-direction:column}.question-panel form[data-answer-form],.practice-mode .question-panel form{padding:0 18px 20px}.question-body{margin:18px;padding:22px}.exam-room{width:min(100% - 18px,1320px);gap:14px}.taking-shell{width:min(100% - 18px,1180px)}}
@media(max-width:560px){.exam-intro-content,.step-card{padding:24px}.btn{width:100%}.step-actions,.question-actions,.result-actions{display:grid}.timer-card strong{font-size:29px}.question-body{font-size:15px}.market-header{position:static!important}}


/* Designer reports */
.designer-report-shell .page-title-row{align-items:flex-start}.designer-report-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin:18px 0}.designer-report-grid.wide{grid-template-columns:repeat(5,minmax(0,1fr))}.designer-report-filter{display:grid;grid-template-columns:1.8fr 1fr 1fr auto;gap:12px;background:rgba(255,255,255,.92);border:1px solid var(--sk-line);border-radius:11px;padding:16px;box-shadow:var(--tk-shadow-soft);margin:18px 0}.designer-report-filter input,.designer-report-filter select{border:1px solid var(--sk-line-strong);border-radius:9px;padding:12px 14px;background:var(--sk-surface);color:var(--sk-ink);font-weight:600}.designer-report-table-wrap{background:var(--sk-surface);border:1px solid var(--sk-line);border-radius:11px;box-shadow:var(--tk-shadow-soft);overflow:auto}.designer-report-table{width:100%;border-collapse:separate;border-spacing:0;min-width:980px}.designer-report-table th{background:var(--sk-surface-2);color:var(--sk-ink-soft);font-size:12px;text-align:right;padding:15px 14px;font-weight:680;border-bottom:1px solid var(--tk-border)}.designer-report-table td{padding:15px 14px;border-bottom:1px solid var(--sk-line);vertical-align:middle;color:var(--tk-text)}.designer-report-table tr:last-child td{border-bottom:0}.designer-report-table td strong{display:block;color:var(--tk-ink);margin-bottom:6px}.designer-report-table td small{display:block;color:var(--sk-ink-soft);line-height:1.8}.status-pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:7px 11px;font-weight:680;font-size:12px;background:var(--sk-surface-2);color:var(--sk-ink-soft)}.status-in_progress{background:#fff7ed;color:#c2410c}.status-pending_grading{background:#fef3c7;color:#92400e}.status-passed{background:#dcfce7;color:#166534}.status-failed,.status-disqualified{background:#fee2e2;color:#991b1b}.status-not_started{background:var(--sk-info-soft);color:var(--sk-info)}.source-direct_exam{background:var(--sk-info-soft);color:var(--sk-info)}.source-course{background:#ecfdf5;color:#047857}.source-free_exam{background:#fff7ed;color:#c2410c}
@media(max-width:1100px){.designer-report-grid,.designer-report-grid.wide{grid-template-columns:repeat(2,minmax(0,1fr))}.designer-report-filter{grid-template-columns:1fr}}@media(max-width:560px){.designer-report-grid,.designer-report-grid.wide{grid-template-columns:1fr}}

/* Student analytics, ratings and Q&A */
.result-grid.rich{grid-template-columns:repeat(4,minmax(0,1fr));margin:18px 0}.result-grid.rich .metric small{display:block;color:var(--sk-ink-soft);margin-top:6px;font-weight:600}.analytics-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:16px;margin:18px 0}.chart-card,.rating-card,.message-card,.student-result-row{background:#fff;border:1px solid var(--sk-line);border-radius:11px;box-shadow:var(--tk-shadow-soft);padding:22px}.chart-card h3,.rating-card h3{margin:0 0 14px;color:var(--tk-ink)}.donut-chart{--ok:0;--bad:0;--empty:0;width:190px;height:190px;border-radius:50%;margin:8px auto;background:conic-gradient(#16a34a 0 calc(var(--ok)*1%),#ef4444 calc(var(--ok)*1%) calc((var(--ok) + var(--bad))*1%),#cbd5e1 calc((var(--ok) + var(--bad))*1%) 100%);display:grid;place-items:center;position:relative}.donut-chart::after{content:"";position:absolute;inset:24px;border-radius:50%;background:#fff}.donut-chart span{position:relative;z-index:1;font-weight:680;font-size:28px;color:var(--sk-amber-deep);text-align:center}.donut-chart small{display:block;font-size:12px;color:var(--sk-ink-soft)}.legend-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.legend-row span{border-radius:999px;padding:7px 10px;font-weight:580;font-size:12px}.legend-row .ok{background:var(--sk-ok-soft);color:var(--sk-ok)}.legend-row .bad{background:var(--sk-danger-soft);color:var(--sk-danger)}.legend-row .empty{background:var(--sk-surface-2);color:var(--sk-ink-soft)}.bar-stat b{font-size:26px;color:var(--tk-blue-deep)}.bar-stat span,.mini-bars span{display:block;height:12px;background:var(--sk-surface-3);border-radius:999px;overflow:hidden;margin-top:12px}.bar-stat i,.mini-bars i{display:block;height:100%;background:linear-gradient(90deg,var(--tk-teal),var(--tk-blue-2),var(--tk-gold));border-radius:999px}.rating-card{display:grid;grid-template-columns:1fr 1.2fr;gap:18px;align-items:start}.rating-form{display:grid;gap:12px}.rating-form textarea{min-height:90px}.star-choices ul{list-style:none;padding:0;margin:0;display:flex;gap:8px;flex-wrap:wrap}.star-choices li{background:var(--sk-amber-soft);border:1px solid var(--sk-amber-line);border-radius:9px;padding:8px 10px;font-weight:680;color:var(--sk-amber-deep)}.student-result-list{display:grid;gap:14px}.student-result-row{display:flex;justify-content:space-between;gap:18px;align-items:center}.mini-bars{min-width:220px;margin-top:8px}.mini-bars b{font-size:12px;color:var(--sk-ink-soft)}.discussion-box{margin-top:12px;background:var(--sk-info-soft);border:1px solid var(--sk-info-soft);border-radius:9px;padding:13px 15px}.discussion-box summary{cursor:pointer;font-weight:680;color:var(--sk-info)}.discussion-box form{display:grid;gap:10px;margin-top:12px}.discussion-box input{border:1px solid var(--sk-line);border-radius:9px;padding:12px}.discussion-list{display:grid;gap:12px;margin:16px 0}.message-card.student{border-right:5px solid var(--tk-blue-2)}.message-card.designer{border-inline-start:5px solid var(--sk-ok);background:var(--sk-surface)}.message-card strong{display:block;color:var(--tk-ink)}.message-card span{color:var(--sk-ink-soft);font-size:12px}.discussion-reply{background:var(--sk-surface);border:1px solid var(--sk-line);border-radius:11px;padding:18px;box-shadow:var(--tk-shadow-soft)}
@media(max-width:980px){.analytics-grid,.result-grid.rich,.rating-card{grid-template-columns:1fr}.student-result-row{align-items:flex-start;flex-direction:column}.donut-chart{width:160px;height:160px}}


/* Dropdown cloze runtime — Phase 2-B */
.dropdown-cloze-control{display:inline-flex;max-width:100%;margin:.2rem .24rem;vertical-align:middle}
.dropdown-cloze-select{max-width:100%;min-width:11rem;min-height:42px;border:1px solid var(--sk-line-strong);border-radius:9px;padding:7px 34px 7px 10px;background:var(--sk-surface);color:var(--sk-ink);font:inherit;line-height:1.45;cursor:pointer}
.dropdown-cloze-select:focus{outline:0;border-color:var(--sk-amber-deep);box-shadow:0 0 0 4px var(--sk-amber-soft)}
.dropdown-cloze-select:disabled{cursor:default;background:var(--sk-surface-2);color:var(--sk-ink-soft);opacity:1}
.dropdown-cloze-runtime-note{margin-top:14px;padding:12px 14px;border:1px solid var(--sk-amber-line);border-radius:9px;background:var(--sk-amber-soft);color:var(--sk-ink-soft);font-size:13px;line-height:1.9}
.dropdown-cloze-runtime-note.is-saved{border-color:var(--sk-line);background:var(--sk-surface-2)}
.dropdown-cloze-review{display:grid;gap:9px;margin-top:14px}
.dropdown-cloze-review__row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 13px;border:1px solid var(--sk-line);border-radius:9px;background:var(--sk-surface-2)}
.dropdown-cloze-review__row span{color:var(--sk-ink-soft);font-size:12px;font-weight:650}
.dropdown-cloze-review__row strong{color:var(--sk-ink);font-size:13px;text-align:start}
.dropdown-cloze-review__row span small,.dropdown-cloze-review__row strong small,.dropdown-cloze-review__row strong em{display:block;margin-top:3px;font-size:11px;line-height:1.7;font-style:normal}
.dropdown-cloze-review__row strong em{color:var(--sk-danger)}
.dropdown-cloze-review__row.is-correct{border-color:var(--sk-ok);background:var(--sk-ok-soft)}
.dropdown-cloze-review__row.is-incorrect{border-color:var(--sk-danger)}
.dropdown-cloze-review__row.is-unanswered{border-style:dashed}
@media(max-width:560px){.dropdown-cloze-control{display:flex;width:100%;margin:.4rem 0}.dropdown-cloze-select{width:100%;min-width:0}.dropdown-cloze-review__row{align-items:flex-start;flex-direction:column;gap:5px}}

/* Phase 2-B: deferred automatic scoring status */
.status-pending_scoring{background:var(--sk-info-soft);color:var(--sk-info)}
/* Phase 3: accessible two-column matching runtime and review. */
.matching-runtime{display:grid;gap:12px;margin-top:16px}
.matching-runtime__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;color:var(--sk-ink-soft);font-size:12px;font-weight:750}
.matching-runtime__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:center;padding:12px;border:1px solid var(--sk-line);border-radius:10px;background:var(--sk-surface-2)}
.matching-runtime__source{font-weight:700;line-height:1.9;color:var(--sk-ink)}
.matching-runtime__source small{display:block;color:var(--sk-ink-soft);font-size:11px;font-weight:500}
.matching-runtime__select{width:100%;min-height:42px;border:1px solid var(--sk-line-strong);border-radius:9px;padding:7px 34px 7px 10px;background:var(--sk-surface);color:var(--sk-ink);font:inherit;line-height:1.45}
.matching-runtime__select:focus{outline:0;border-color:var(--sk-amber-deep);box-shadow:0 0 0 4px var(--sk-amber-soft)}
.matching-runtime__select:disabled{cursor:default;background:var(--sk-surface-2);color:var(--sk-ink-soft);opacity:1}
.matching-review{display:grid;gap:9px;margin-top:14px}
.matching-review__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:center;padding:11px 13px;border:1px solid var(--sk-line);border-radius:9px;background:var(--sk-surface-2)}
.matching-review__row span{color:var(--sk-ink-soft);font-size:12px;font-weight:650}
.matching-review__row strong{color:var(--sk-ink);font-size:13px;text-align:start}
.matching-review__row span small,.matching-review__row strong small,.matching-review__row strong em{display:block;margin-top:3px;font-size:11px;line-height:1.7;font-style:normal}
.matching-review__row strong em{color:var(--sk-danger)}
/* پاسخ/تطبیق صحیح دیگر قرمز نیست (مرور تست رایگان و تمرین) */
.matching-review__row strong em.ok,.dropdown-cloze-review__row strong em.ok{color:var(--sk-ok)}
.matching-review__row.is-correct{border-color:var(--sk-ok);background:var(--sk-ok-soft)}
.matching-review__row.is-incorrect{border-color:var(--sk-danger)}
.matching-review__row.is-unanswered{border-style:dashed}
@media(max-width:680px){.matching-runtime__head{display:none}.matching-runtime__row,.matching-review__row{grid-template-columns:1fr;gap:7px}.matching-runtime__row{padding:10px}}

/* Phase 4: accessible ordering and categorization interactions */
.interactive-runtime-help{margin:0 0 12px;color:var(--sk-ink-soft,#667085);font-size:13px;line-height:1.8}
.ordering-runtime__list,.categorization-runtime__items{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.ordering-runtime__item,.categorization-runtime__item{display:grid;grid-template-columns:auto auto minmax(120px,1fr) auto auto;gap:10px;align-items:center;border:1px solid var(--sk-line,#e4e7ec);border-radius:14px;background:#fff;padding:11px 12px;transition:border-color .18s,box-shadow .18s,opacity .18s}
.ordering-runtime__item[draggable=true],.categorization-runtime__item[draggable=true]{cursor:grab}.ordering-runtime__item.is-dragging,.categorization-runtime__item.is-dragging{opacity:.52;box-shadow:0 10px 28px rgba(16,24,40,.12)}
.ordering-runtime__handle,.categorization-runtime__handle{color:var(--sk-ink-faint,#98a2b3);font-weight:900}.ordering-runtime__position{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--sk-primary-soft,#eef4ff);font-weight:900}.ordering-runtime__text,.categorization-runtime__text{font-weight:500;line-height:1.9}
.ordering-runtime__actions{display:flex;gap:5px}.ordering-runtime__actions button{width:34px;height:34px;border:1px solid var(--sk-line,#e4e7ec);border-radius:9px;background:#fff;cursor:pointer}.ordering-runtime__rank,.categorization-runtime__item label{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--sk-ink-soft,#667085)}.ordering-runtime select,.categorization-runtime select{min-height:38px;border:1px solid var(--sk-line,#d0d5dd);border-radius:10px;background:#fff;padding:6px 9px;color:var(--sk-ink,#101828)}
.categorization-runtime__zones{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}.categorization-runtime__zone{min-height:74px;border:2px dashed var(--sk-line,#d0d5dd);border-radius:14px;padding:12px;display:flex;align-items:center;justify-content:space-between;gap:8px;background:rgba(249,250,251,.8)}.categorization-runtime__zone.is-over{border-color:var(--sk-primary,#3157d5);box-shadow:0 0 0 3px rgba(49,87,213,.12)}.categorization-runtime__zone.has-items span{font-weight:900}.interactive-runtime-status{min-height:1em;margin-top:7px;font-size:12px;color:var(--sk-ink-soft,#667085)}
.ordering-review,.categorization-review{display:grid;gap:9px}.ordering-review__row,.categorization-review__row{display:grid;grid-template-columns:auto minmax(120px,1fr) minmax(120px,1fr);gap:10px;align-items:center;border:1px solid var(--sk-line,#e4e7ec);border-radius:12px;padding:10px 12px}.ordering-review__row.is-correct,.categorization-review__row.is-correct{border-color:rgba(18,183,106,.45);background:rgba(18,183,106,.05)}.ordering-review__row.is-incorrect,.categorization-review__row.is-incorrect{border-color:rgba(240,68,56,.38);background:rgba(240,68,56,.04)}.ordering-review__row small,.categorization-review__row small{display:block;color:var(--sk-ink-soft,#667085);font-weight:600;margin-top:3px}.ordering-review__row em,.categorization-review__row em{display:block;font-style:normal;color:var(--sk-danger,#d92d20);font-size:12px;margin-top:3px}
@media(max-width:720px){.ordering-runtime__item,.categorization-runtime__item{grid-template-columns:auto auto 1fr}.ordering-runtime__actions,.ordering-runtime__rank,.categorization-runtime__item label{grid-column:2/-1}.categorization-runtime__zones{grid-template-columns:1fr}.ordering-review__row,.categorization-review__row{grid-template-columns:auto 1fr}.ordering-review__row>:last-child,.categorization-review__row>:last-child{grid-column:2}}
.scenario-runtime{display:grid;gap:18px;margin-top:18px}.scenario-runtime__child{padding:18px;border:1px solid var(--sk-line);border-radius:14px;background:var(--sk-surface-2)}.scenario-runtime__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:12px;margin-bottom:14px;border-bottom:1px dashed var(--sk-line)}.scenario-runtime__head div{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.scenario-runtime__head span,.scenario-runtime__head small{color:var(--sk-ink-soft);font-size:12px}.scenario-runtime__body{line-height:2;margin-bottom:12px}.scenario-runtime__text{width:100%;min-height:130px;border:1px solid var(--sk-line-strong);border-radius:10px;padding:12px;background:var(--sk-surface);color:var(--sk-ink);font:inherit}.scenario-runtime__feedback{display:flex;justify-content:space-between;gap:10px;margin-top:12px;padding:9px 11px;border-radius:9px;background:var(--sk-surface)}.scenario-runtime__feedback.status-correct{border-inline-start:3px solid var(--sk-success)}.scenario-runtime__feedback.status-incorrect{border-inline-start:3px solid var(--sk-danger)}@media(max-width:680px){.scenario-runtime__child{padding:12px}.scenario-runtime__head{align-items:flex-start;flex-direction:column}}
/* Phase 6: situational judgement (SJT) and rubric-guided descriptive questions. */
.sjt-runtime{display:grid;gap:14px;margin-top:16px}.sjt-runtime__instruction{padding:11px 13px;border:1px solid var(--sk-info-soft,#dbeafe);border-radius:12px;background:var(--sk-info-soft,#eff6ff);color:var(--sk-ink-soft,#475467);font-size:13px;line-height:1.9}.sjt-runtime__actions{display:grid;gap:10px}.sjt-runtime__action{border:1px solid var(--sk-line,#e4e7ec);border-radius:14px;background:var(--sk-surface,#fff);padding:12px 14px;transition:border-color .18s,box-shadow .18s,background .18s}.sjt-runtime__action:hover{border-color:var(--sk-line-strong,#c7cdd8)}.sjt-runtime__action.is-selected{border-color:var(--sk-primary,#3157d5);box-shadow:0 0 0 3px rgba(49,87,213,.10)}.sjt-runtime__action.is-correct{border-color:var(--sk-ok,#12b76a);background:var(--sk-ok-soft,#ecfdf3)}.sjt-runtime__action.is-incorrect{border-color:var(--sk-danger,#d92d20)}.sjt-runtime__action>label{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.sjt-runtime__action>label>input{margin-top:6px;flex:0 0 auto}.sjt-runtime__action>label>select{min-width:76px;min-height:40px;border:1px solid var(--sk-line-strong,#d0d5dd);border-radius:10px;background:var(--sk-surface,#fff);padding:6px 9px;font:inherit;color:var(--sk-ink,#101828)}.sjt-runtime__action>label>select:focus{outline:0;border-color:var(--sk-primary,#3157d5);box-shadow:0 0 0 3px rgba(49,87,213,.12)}.sjt-runtime__text{min-width:0;flex:1;font-weight:500;line-height:2;color:var(--sk-ink,#101828)}.sjt-runtime__feedback{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding-top:9px;border-top:1px dashed var(--sk-line,#e4e7ec);font-size:12px}.sjt-runtime__feedback.status-correct strong{color:var(--sk-ok,#067647)}.sjt-runtime__feedback.status-partial strong{color:var(--sk-warning,#b54708)}.sjt-runtime__feedback.status-incorrect strong{color:var(--sk-danger,#b42318)}.sjt-runtime__rationale{margin:9px 0 0;padding:10px 12px;border-radius:10px;background:var(--sk-surface-2,#f9fafb);color:var(--sk-ink-soft,#475467);font-size:12px;line-height:1.85}.sjt-competencies{display:grid;gap:8px;margin-top:14px}.sjt-competencies__row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,2fr) auto;gap:10px;align-items:center;padding:9px 11px;border:1px solid var(--sk-line,#e4e7ec);border-radius:11px}.sjt-competencies__bar{height:8px;border-radius:999px;background:var(--sk-surface-2,#eaecf0);overflow:hidden}.sjt-competencies__bar i{display:block;height:100%;border-radius:inherit;background:var(--sk-primary,#3157d5)}
.rubric-guide{display:grid;gap:10px;margin:16px 0}.rubric-guide>header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:var(--sk-primary-soft,#eef4ff)}.rubric-guide>header strong{color:var(--sk-ink,#101828)}.rubric-guide>header small{color:var(--sk-ink-soft,#475467);line-height:1.7}.rubric-guide__criterion{border:1px solid var(--sk-line,#e4e7ec);border-radius:12px;background:var(--sk-surface,#fff);overflow:hidden}.rubric-guide__criterion summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;cursor:pointer;font-weight:800}.rubric-guide__criterion>p{margin:0;padding:0 14px 12px;color:var(--sk-ink-soft,#475467);line-height:1.85}.rubric-guide__levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;padding:0 14px 14px}.rubric-guide__levels>div{display:grid;gap:4px;padding:10px;border:1px solid var(--sk-line,#e4e7ec);border-radius:10px;background:var(--sk-surface-2,#f9fafb)}.rubric-guide__levels span{color:var(--sk-ink-soft,#475467);font-size:12px;line-height:1.7}
.rubric-grading{display:grid;gap:14px;margin-top:14px}.rubric-grading__head,.rubric-grading__criterion-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.rubric-grading__head small{display:block;margin-top:4px;color:var(--sk-ink-soft,#475467)}.rubric-grading__criterion{padding:14px;border:1px solid var(--sk-line,#e4e7ec);border-radius:14px;background:var(--sk-surface-2,#f9fafb)}.rubric-grading__criterion-head p{margin:5px 0 0;color:var(--sk-ink-soft,#475467);font-size:12px;line-height:1.75}.rubric-grading__criterion-head>span{white-space:nowrap;font-weight:850;color:var(--sk-primary,#3157d5)}.rubric-grading__levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px;margin:12px 0}.rubric-grading__level{display:block;cursor:pointer}.rubric-grading__level input{position:absolute;opacity:0;pointer-events:none}.rubric-grading__level>span{display:grid;gap:4px;height:100%;padding:11px;border:1px solid var(--sk-line,#d0d5dd);border-radius:11px;background:var(--sk-surface,#fff);transition:border-color .18s,box-shadow .18s}.rubric-grading__level input:focus-visible+span{outline:3px solid rgba(49,87,213,.18)}.rubric-grading__level input:checked+span,.rubric-grading__level.is-selected>span{border-color:var(--sk-primary,#3157d5);box-shadow:0 0 0 3px rgba(49,87,213,.10)}.rubric-grading__level b{color:var(--sk-primary,#3157d5);font-size:11px}.rubric-grading__level small{color:var(--sk-ink-soft,#475467);line-height:1.7}.rubric-grading__overall,.rubric-grading__reason{display:grid;gap:7px}.rubric-grading__reason>span b{color:var(--sk-danger,#d92d20)}.rubric-review{display:grid;gap:10px;margin-top:14px}.rubric-review__row{padding:11px 13px;border:1px solid var(--sk-line,#e4e7ec);border-radius:11px;background:var(--sk-surface-2,#f9fafb)}.rubric-review__row header{display:flex;justify-content:space-between;gap:10px}.rubric-review__row p{margin:7px 0 0;color:var(--sk-ink-soft,#475467);line-height:1.75}.rubric-review__overall{padding:11px 13px;border-inline-start:3px solid var(--sk-primary,#3157d5);background:var(--sk-primary-soft,#eef4ff);border-radius:10px}
@media(max-width:680px){.sjt-runtime__action>label{align-items:flex-start}.sjt-runtime__action>label>select{min-width:64px}.sjt-competencies__row{grid-template-columns:1fr auto}.sjt-competencies__bar{grid-column:1/-1}.rubric-guide>header,.rubric-grading__head,.rubric-grading__criterion-head{flex-direction:column}.rubric-guide__levels,.rubric-grading__levels{grid-template-columns:1fr}}


/* Package 7/7: rubric learner feedback and immutable grading history. */
.rubric-feedback{margin-top:1rem;border:1px solid var(--border,#dbe2ea);border-radius:1rem;background:var(--surface,#fff);overflow:hidden}
.rubric-feedback__head{padding:.85rem 1rem;background:color-mix(in srgb,var(--primary,#3157d5) 8%,transparent);border-bottom:1px solid var(--border,#dbe2ea)}
.rubric-feedback__criterion{padding:.9rem 1rem;border-bottom:1px solid var(--border,#e6ebf1)}
.rubric-feedback__criterion:last-of-type{border-bottom:0}
.rubric-feedback__criterion-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.rubric-feedback__criterion-head>span{display:flex;align-items:center;gap:.65rem;font-weight:700;text-align:end}
.rubric-feedback__criterion-head small{font-weight:500;opacity:.72;white-space:nowrap}
.rubric-feedback__criterion p,.rubric-feedback__overall p{margin:.55rem 0 0;line-height:1.9;color:var(--text-muted,#52606d)}
.rubric-feedback__overall{padding:1rem;background:color-mix(in srgb,var(--success,#16805b) 7%,transparent);border-top:1px solid var(--border,#dbe2ea)}
.rubric-audit-history{margin-top:1rem;border:1px dashed var(--border-strong,#b7c1cc);border-radius:.9rem;padding:.75rem 1rem;background:var(--surface-muted,#f8fafc)}
.rubric-audit-history summary{cursor:pointer;font-weight:800}
.rubric-audit-history ol{margin:.8rem 1.2rem 0 0;padding:0;display:grid;gap:.75rem}
.rubric-audit-history li{padding:.75rem;border-radius:.75rem;background:var(--surface,#fff);border:1px solid var(--border,#e2e8f0)}
.rubric-audit-history li>div{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem}
.rubric-audit-history time,.rubric-audit-history small{opacity:.7}
.rubric-audit-history p{margin:.45rem 0;line-height:1.8}
@media(max-width:640px){.rubric-feedback__criterion-head{display:block}.rubric-feedback__criterion-head>span{margin-top:.45rem;justify-content:flex-start}.rubric-audit-history li>div{align-items:flex-start;flex-direction:column;gap:.25rem}}

/* ============================================================================
   EXAM QUESTION UX v1 — قواعد یکسان نمایش سؤال در آزمون/تمرین/مرور/تصحیح/تست رایگان
   ============================================================================ */
/* شمارهٔ سؤال هم‌تراز با متن؛ خط طلایی و شناور حذف */
.question-body.modern{display:flex;gap:12px;padding:0;margin:26px 24px 16px;}
.question-body.modern::before,.question-body.modern::after{display:none!important}
.question-body.modern .qno{float:none;flex-shrink:0;margin:0;font-weight:800;line-height:2.1;color:var(--sk-ink)}
.question-body.modern .qbody{flex:1;min-width:0}
/* بدنهٔ غنی استاندارد — در همهٔ بخش‌ها با کلاس exam-rich */
.exam-rich>:first-child{margin-top:0!important}
.exam-rich>:last-child{margin-bottom:0!important}
.exam-rich p{margin:0 0 10px;line-height:2.1}
.exam-rich p:empty{display:none}   /* ch-073: بند «فقط <br>» را question_bank.bidi برمی‌دارد؛ قاعدهٔ CSSِ آن بندِ <p>متن<br></p> را هم پنهان می‌کرد */
.exam-rich img{display:block;margin:22px auto;max-width:min(100%,720px);max-height:420px;
  width:auto;height:auto;border-radius:14px;object-fit:contain;background:var(--sk-surface)}
.exam-rich p:has(> img:only-child){margin:0}
/* سربرگ ستون‌های تطبیق: در هیچ بخشی نمایش داده نشود */
.matching-runtime__head{display:none!important}
.matching-runtime__row{grid-template-columns:minmax(0,1fr) minmax(190px,260px)}
@media (max-width:640px){.matching-runtime__row{grid-template-columns:1fr}}

/* ── مرتب‌سازی: کارت‌های تمیز با حس گرفتن و کشیدن ── */
.ordering-runtime__list{display:grid;gap:9px;margin:14px 0 0;padding:0;list-style:none}
.ordering-runtime__item{display:flex;align-items:center;gap:11px;border:1.5px solid var(--sk-line);
  border-radius:13px;background:var(--sk-surface);padding:11px 13px;cursor:grab;user-select:none;
  transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease,opacity .15s ease}
.ordering-runtime__item:hover{border-color:var(--sk-ink-soft,#5a6170);box-shadow:0 8px 18px -12px rgba(16,24,40,.18);transform:translateY(-1px)}
.ordering-runtime__item:active{cursor:grabbing}
.ordering-runtime__item.is-dragging{opacity:.5;transform:none;box-shadow:none}
.ordering-runtime__handle{color:var(--sk-ink-faint);display:grid;place-items:center;cursor:inherit;font-size:13px;letter-spacing:-2px}
.ordering-runtime__item:hover .ordering-runtime__handle{color:var(--sk-ink)}
.ordering-runtime__position{width:26px;height:26px;border-radius:50%;border:1px solid var(--sk-line);
  background:var(--sk-surface-2);display:grid;place-items:center;font-size:12.5px;font-weight:800;color:var(--sk-ink-soft);flex-shrink:0}
.ordering-runtime__text{flex:1;min-width:0;font-size:14.5px;font-weight:500;line-height:1.9;color:var(--sk-ink)}
.ordering-runtime__actions{display:flex;gap:5px}
.ordering-runtime__actions button{width:27px;height:27px;border-radius:8px;border:1px solid var(--sk-line);
  background:var(--sk-surface-2);color:var(--sk-ink-soft);cursor:pointer;font-size:12px;display:grid;place-items:center;
  transition:border-color .13s ease,color .13s ease,background .13s ease}
.ordering-runtime__actions button:hover:not(:disabled){border-color:var(--sk-ink-soft,#5a6170);color:var(--sk-ink);background:var(--sk-surface)}
.ordering-runtime__actions button:disabled{opacity:.35;cursor:default}
/* رتبه همچنان فیلد فرم است اما دیگر UI ندارد؛ درگ/جهت‌ها همان را ثبت می‌کنند */
.ordering-runtime .ordering-runtime__rank{position:absolute!important;width:1px!important;height:1px!important;
  padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
@media (max-width:560px){
  .ordering-runtime__item{flex-wrap:wrap}
  .ordering-runtime__text{flex-basis:100%;order:5}
}

/* ── دسته‌بندی: بورد دوستونه (آیتم‌ها ← دسته‌ها) ── */
.catrt__grid{display:grid;grid-template-columns:minmax(200px,.85fr) minmax(0,1.15fr);gap:14px;align-items:start;margin-top:14px}
.catrt__col{min-width:0}
.catrt__colhead{font-size:11px;font-weight:800;color:var(--sk-ink-faint);margin:0 2px 7px}
.catrt__tray{border:1.5px dashed var(--sk-line-strong,#c9ced6);border-radius:14px;background:var(--sk-surface-2);
  padding:10px;display:flex;flex-direction:column;gap:8px;min-height:150px;align-content:start;transition:outline-color .15s ease}
.catrt__tray.is-over{outline:2px dashed var(--sk-ink-soft,#5a6170);outline-offset:2px}
.catrt__tray.is-empty::after{content:"همهٔ آیتم‌ها جایگذاری شدند";font-size:12px;color:var(--sk-ink-faint);text-align:center;padding:14px 6px}
.catrt__item{display:flex;align-items:center;gap:10px;border:1.5px solid var(--sk-line);border-radius:12px;
  background:var(--sk-surface);padding:10px 12px;cursor:grab;user-select:none;
  transition:border-color .15s ease,box-shadow .15s ease,background .15s ease,opacity .15s ease}
.catrt__item:hover{border-color:var(--sk-ink-soft,#5a6170);box-shadow:0 8px 18px -12px rgba(16,24,40,.18)}
.catrt__item:active{cursor:grabbing}
.catrt__item.is-dragging{opacity:.5;box-shadow:none}
.catrt__item.is-picked{border-color:var(--sk-ink);background:var(--sk-surface-2)}
.catrt__handle{color:var(--sk-ink-faint);display:grid;place-items:center;flex-shrink:0}
.catrt__item:hover .catrt__handle{color:var(--sk-ink)}
.catrt__text{flex:1;min-width:0;font-size:14px;font-weight:500;line-height:1.9;color:var(--sk-ink)}
.catrt__select-label{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;
  margin:-1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
.catrt__buckets{display:grid;gap:10px}
.catrt__bucket{border:1.5px solid var(--sk-line);border-radius:14px;background:var(--sk-surface);overflow:hidden;
  transition:border-color .15s ease}
.catrt__bucket.is-over{outline:2px dashed var(--sk-ink-soft,#5a6170);outline-offset:2px;border-color:var(--sk-ink-soft,#5a6170)}
.catrt__bucket-head{display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:9px 13px;background:var(--sk-surface-2);border-bottom:1px solid var(--sk-line)}
.catrt__bucket-head strong{font-size:13px;font-weight:800;color:var(--sk-ink);min-width:0;
  white-space:normal;overflow-wrap:anywhere;line-height:1.8}
.catrt__count{font-size:11px;font-weight:800;color:var(--sk-ink-faint);background:var(--sk-surface);
  border:1px solid var(--sk-line);border-radius:999px;padding:2px 9px;flex-shrink:0}
.catrt__bucket.has-items .catrt__count{color:var(--sk-ink);border-color:var(--sk-line-strong,#c9ced6);background:var(--sk-surface-2)}
.catrt__bucket-body{padding:10px;display:flex;flex-direction:column;gap:8px;min-height:52px}
@media (max-width:720px){
  .catrt__grid{grid-template-columns:1fr}
  .catrt__tray{min-height:96px}
}

/* ============================================================================
   GRADING & REVIEW UX v1 — تصحیح و مرور: روبریک خوانا + ردیف‌های پاسخ ساخت‌یافته
   ============================================================================ */
.rubric-grading{display:grid;gap:14px;margin-top:14px}
.rubric-grading__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.rubric-grading__title{font-size:14.5px;font-weight:800;color:var(--sk-ink)}
.rubric-grading__title span{display:block;margin-top:3px;font-size:12px;font-weight:600;color:var(--sk-ink-faint)}
.rubric-grading__criterion{border:1px solid var(--sk-line);border-radius:14px;background:var(--sk-surface);padding:14px 16px;display:grid;gap:12px}
.rubric-grading__criterion-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.rubric-grading__criterion-head strong{font-size:13.5px;color:var(--sk-ink)}
.rubric-grading__criterion-head p{margin:4px 0 0;font-size:12px;line-height:1.9;color:var(--sk-ink-soft)}
.rubric-grading__weight{flex-shrink:0;font-size:11px;font-weight:800;color:var(--sk-ink-soft);
  background:var(--sk-surface-2);border:1px solid var(--sk-line);border-radius:999px;padding:3px 10px;white-space:nowrap}
.rubric-grading__levels{display:grid;gap:8px}
.rubric-grading__level{display:flex;align-items:flex-start;gap:10px;border:1.5px solid var(--sk-line);
  border-radius:12px;background:var(--sk-surface);padding:10px 12px;cursor:pointer;
  transition:border-color .14s ease,background .14s ease}
.rubric-grading__level:hover{border-color:var(--sk-line-strong,#c9ced6)}
.rubric-grading__level input{margin-top:4px;flex-shrink:0;accent-color:var(--sk-ink)}
.rubric-grading__level.is-selected,.rubric-grading__level:has(input:checked){border-color:var(--sk-ink);background:var(--sk-surface-2)}
.rubric-grading__level .lvl{min-width:0;flex:1;display:grid;gap:4px}
.rubric-grading__level .lvl__top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap}
.rubric-grading__level .lvl__top strong{font-size:13px;color:var(--sk-ink)}
.rubric-grading__level .lvl__pct{font-size:11px;font-weight:800;color:var(--sk-ink-soft);
  background:var(--sk-surface-2);border:1px solid var(--sk-line);border-radius:999px;padding:2px 9px;white-space:nowrap}
.rubric-grading__level.is-selected .lvl__pct,.rubric-grading__level:has(input:checked) .lvl__pct{background:var(--sk-surface);border-color:var(--sk-line-strong,#c9ced6);color:var(--sk-ink)}
.rubric-grading__level small{display:block;font-size:12px;line-height:1.9;color:var(--sk-ink-soft)}
.rubric-grading__overall,.rubric-grading__reason{display:grid;gap:6px}
.rubric-grading__overall>span,.rubric-grading__reason>span{font-size:12px;font-weight:700;color:var(--sk-ink-soft)}
/* ردیف‌های پاسخ مرتب‌سازی/دسته‌بندی */
.ordering-review,.categorization-review{display:grid;gap:8px;margin-top:12px}
.ordering-review__row,.categorization-review__row{display:flex;align-items:flex-start;gap:11px;
  border:1.5px solid var(--sk-line);border-radius:12px;background:var(--sk-surface);padding:10px 13px}
.ordering-review__row .pos,.categorization-review__row .pos{width:25px;height:25px;border-radius:50%;
  border:1px solid var(--sk-line);background:var(--sk-surface-2);display:grid;place-items:center;
  font-size:12px;font-weight:800;color:var(--sk-ink-soft);flex-shrink:0}
.ordering-review__row .tx,.categorization-review__row .tx{flex:1;min-width:0;font-size:14px;font-weight:500;line-height:1.9;color:var(--sk-ink)}
.ordering-review__row .meta,.categorization-review__row .meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end;flex-shrink:0;max-width:52%}
.ordering-review__row .meta>span,.categorization-review__row .meta>span{font-size:11px;font-weight:750;
  border-radius:999px;padding:3px 10px;border:1px solid var(--sk-line);background:var(--sk-surface-2);color:var(--sk-ink-soft);white-space:nowrap}
.ordering-review__row .meta .st.is-ok,.categorization-review__row .meta .st.is-ok{color:#1f9d57;border-color:color-mix(in srgb,#1f9d57 35%,var(--sk-line));background:color-mix(in srgb,#1f9d57 8%,var(--sk-surface))}
.ordering-review__row .meta .st.is-bad,.categorization-review__row .meta .st.is-bad{color:#d24545;border-color:color-mix(in srgb,#d24545 35%,var(--sk-line));background:color-mix(in srgb,#d24545 7%,var(--sk-surface))}
.ordering-review__row.is-correct,.categorization-review__row.is-correct{border-color:color-mix(in srgb,#1f9d57 40%,var(--sk-line))}
.ordering-review__row.is-incorrect,.categorization-review__row.is-incorrect{border-color:color-mix(in srgb,#d24545 40%,var(--sk-line))}
@media (max-width:640px){
  .ordering-review__row,.categorization-review__row{flex-wrap:wrap}
  .ordering-review__row .meta,.categorization-review__row .meta{max-width:100%;justify-content:flex-start;width:100%}
}

/* ── SCENARIO & GRADING WIDGET UX — کارت فرزندها، بازخورد چیپی، گزینه‌های مستقل ── */
.scenario-runtime{gap:12px;margin-top:12px}
.scenario-runtime__child{padding:14px 16px;background:var(--sk-surface)}
.scenario-runtime__head{padding-bottom:10px;margin-bottom:12px}
.scenario-runtime__head b{font-size:14px;font-weight:800;color:var(--sk-ink)}
.scenario-runtime__head small{font-size:11px;font-weight:800;color:var(--sk-ink-soft);
  background:var(--sk-surface-2);border:1px solid var(--sk-line);border-radius:999px;padding:3px 10px;white-space:nowrap}
.scenario-runtime__feedback{justify-content:flex-start;align-items:center;gap:8px;flex-wrap:wrap;
  border:1px solid var(--sk-line);background:var(--sk-surface-2)}
.scenario-runtime__feedback strong{font-size:11px;font-weight:800;border-radius:999px;padding:3px 11px;
  border:1px solid var(--sk-line);background:var(--sk-surface);color:var(--sk-ink-soft)}
.scenario-runtime__feedback.status-correct strong{color:#1f9d57;border-color:color-mix(in srgb,#1f9d57 35%,var(--sk-line));background:color-mix(in srgb,#1f9d57 8%,var(--sk-surface))}
.scenario-runtime__feedback.status-incorrect strong{color:#d24545;border-color:color-mix(in srgb,#d24545 35%,var(--sk-line));background:color-mix(in srgb,#d24545 7%,var(--sk-surface))}
.scenario-runtime__feedback span{font-size:12px;font-weight:800;color:var(--sk-ink)}
.scenario-runtime__text{width:100%;border:1px solid var(--sk-line);border-radius:12px;padding:12px;
  background:var(--sk-surface);line-height:1.9;margin-top:12px;font-family:inherit}
.practice-explanation.modern{margin-top:12px;border:1px dashed var(--sk-line);border-radius:12px;padding:12px 14px;background:var(--sk-surface-2)}
.practice-explanation.modern h4{margin:0 0 6px;font-size:12.5px;color:var(--sk-ink)}
/* گزینه‌ها در صفحات بدون پوستهٔ آزمون (تصحیح)؛ در خود آزمون، پوستهٔ اصلی این‌ها را بازتعریف می‌کند */
.option-list.modern{display:grid;gap:8px;margin-top:12px}
.option-item.modern{display:flex;align-items:center;gap:10px;border:1.5px solid var(--sk-line);
  border-radius:12px;background:var(--sk-surface);padding:10px 12px;font-size:13.5px;line-height:1.9;color:var(--sk-ink);cursor:pointer}
.option-item.modern input{margin-top:5px;accent-color:var(--sk-ink);flex-shrink:0}
.option-item.modern:has(input:checked){border-color:var(--sk-ink);background:var(--sk-surface-2)}
.option-item.modern:has(input:disabled){cursor:default}

/* تصاویر داخل گزینه‌ها — وسط، اندازهٔ قاعده‌مند، فاصلهٔ ثابت، پاراگراف‌های خالی نامرئی */
.option-item.modern span img,.skgr-opt__t img{display:block;margin:14px auto;max-width:min(100%,560px);
  max-height:320px;width:auto;height:auto;border-radius:12px;object-fit:contain}
.option-item.modern span p,.skgr-opt__t p{margin:0 0 8px}
/* ch-073: فقط بند واقعاً خالی؛ قاعدهٔ قبلیِ «بندی که تنها برچسبش br است» بندِ <p>متن<br></p> را هم پنهان می‌کرد (CSS متن را نمی‌بیند). بندهای
   خالیِ دیگر (<p><br></p>، <p>&nbsp;</p>) را question_bank.bidi پیش از نمایش برمی‌دارد. */
.option-item.modern span p:empty,.skgr-opt__t p:empty{display:none}
.option-item.modern span>:first-child,.skgr-opt__t>:first-child{margin-top:0!important}
.option-item.modern span>:last-child,.skgr-opt__t>:last-child{margin-bottom:0!important}
.option-item.modern span p:has(> img:only-child),.skgr-opt__t p:has(> img:only-child){margin:0}

/* کلوز: عرض ثابت کنترل؛ لیست بازشونده آزاد است */
.question-body .dropdown-cloze-select,
select.dropdown-cloze-select{width:200px;max-width:100%;min-width:0;text-overflow:ellipsis;vertical-align:baseline}

/* محافظ جهت: هر dir=auto درونی، در زمینهٔ راست‌به‌چپ سؤال، راست‌چین می‌ماند */
.question-body[dir="rtl"] [dir="auto"],
.option-list.modern:not(.option-list--en) [dir="auto"],
.option-list.modern:not(.option-list--en) .option-item>span,
.matching-runtime:not([dir="ltr"]) [dir="auto"]{direction:rtl;unicode-bidi:isolate;text-align:start}

/* تایپوگرافی یکنواخت صورت سؤال در همهٔ نوع‌ها */
.question-body.modern .qbody,
.question-body.modern .qbody :is(p, div, li){font-size:16.5px;font-weight:500;line-height:2.1;color:inherit}
.question-body.modern .qbody :is(small, sub, sup){font-weight:inherit}
/* پیام‌های سیستم در اتاق آزمون */
.exam-flash{position:fixed;top:14px;inset-inline-start:50%;transform:translateX(50%);z-index:1200;display:flex;flex-direction:column;gap:8px;width:min(92vw,420px);max-width:92vw}
[dir="ltr"] .exam-flash{transform:translateX(-50%)}
.exam-flash__item{background:#1c1e24;color:#f4f5f7;border:1px solid rgba(255,255,255,.14);border-radius:13px;padding:12px 40px 12px 14px;font-size:13px;font-weight:650;line-height:2;box-shadow:0 14px 34px -14px rgba(0,0,0,.5);position:relative;text-align:center;overflow-wrap:anywhere;animation:exflash-in .22s ease}
.exam-flash__item--error{background:#2a1518;border-color:#7f2731;color:#ffd9dd}
.exam-flash__item--success{background:#12231a;border-color:#1f5c3a;color:#c9f2da}
.exam-flash__close{position:absolute;inset-inline-end:8px;top:50%;transform:translateY(-50%);width:26px;height:26px;border:0;border-radius:8px;background:rgba(255,255,255,.10);color:inherit;font:inherit;font-size:15px;line-height:1;cursor:pointer}
.exam-flash__close:hover{background:rgba(255,255,255,.2)}
.exam-flash__item.is-leaving{opacity:0;transform:translateY(-6px);transition:opacity .28s ease,transform .28s ease}
@keyframes exflash-in{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}

/* Matching runtime hotfix: visible progress, one-click reassignment and save state. */
.matching-runtime__row{transition:border-color .16s ease,background-color .16s ease}
.matching-runtime__row.is-answered{border-color:var(--sk-ok);background:var(--sk-ok-soft)}
.matching-runtime.is-complete .matching-runtime__row{border-color:var(--sk-ok)}
.matching-runtime__status{margin:10px 0 0;padding:10px 12px;border:1px solid var(--sk-line);border-radius:9px;background:var(--sk-surface-2);color:var(--sk-ink-soft);font-size:13px;line-height:1.8}
.matching-runtime__status[data-state="partial"],.matching-runtime__status[data-state="changed"]{border-color:var(--sk-amber-line);background:var(--sk-amber-soft);color:var(--sk-ink)}
.matching-runtime__status[data-state="complete"]{border-color:var(--sk-ok);background:var(--sk-ok-soft);color:var(--sk-ok)}
.autosave-state[data-state="saving"]::before{color:var(--sk-warn)}
.autosave-state[data-state="saved"]::before{color:var(--sk-ok)}
.autosave-state[data-state="error"]{color:var(--sk-danger)}
.autosave-state[data-state="error"]::before{color:var(--sk-danger)}
/* Per-question official timer */
.question-timer-card{border-color:rgba(245,158,11,.42)!important;background:linear-gradient(135deg,rgba(255,247,237,.98),rgba(255,251,235,.92))!important}.question-timer-card strong{color:#b45309!important}.question-timer-card small{display:block;margin-top:5px;font-size:10.5px;line-height:1.7;color:var(--sk-ink-soft,#64748b)}.question-timer-card.is-urgent{animation:tk-question-timer-pulse .9s ease-in-out infinite;border-color:#ef4444!important}.question-timer-card.is-urgent strong,.question-timer-card.is-expired strong{color:#dc2626!important}@keyframes tk-question-timer-pulse{50%{box-shadow:0 0 0 4px rgba(239,68,68,.12)}}

/* جهت متن سؤال‌ها و گزینه‌ها در آزمون، تمرین و مرور: همیشه از «زبان سؤال» (ویژگی dir ظرف)، نه از اولین حرف.
   plaintext قبلی جهت هر بند را از اولین حرفش می‌گرفت؛ گزینهٔ فارسی‌ای که با Render.exe شروع می‌شد چپ‌به‌راست می‌شد.
   رشته‌های لاتین داخل متن فارسی را question_bank.bidi جداگانه ایزوله می‌کند (span.tk-ltr). */
.sjt-runtime__text,.sjt-runtime__prompt,.sjt-runtime__action,.sjt-runtime__hint,.sjt-runtime__rationale,
.scenario-runtime__text,.scenario-runtime__body,.scenario-runtime__head,
.ordering-runtime__text,.ordering-runtime__item,
.categorization-runtime__text,.categorization-runtime__item,.categorization-runtime__zone,
.matching-runtime__row,.matching-runtime__source,.matching-runtime__select,.matching-runtime__status,
.dropdown-cloze-runtime-note,.interactive-runtime-help,.interactive-runtime-status{
  unicode-bidi:isolate;
  text-align:start;
}


/* ═══════════════════════════════════════════════════════════════════════════
   TK BIDI & READABILITY v1 — آزمون، تمرین، مرور، تست رایگان و پیش‌نمایش
   جهت از زبان سؤال می‌آید. question_bank.bidi رشته‌های لاتین درون متن فارسی را ایزوله می‌کند، بندِ بدون حرف فارسی
   (فرمان، مسیر، پیکربندی) را بلوک چپ‌به‌راست می‌کند و پرسش پایانی صورت سؤال را tk-lead می‌گذارد.
   ═══════════════════════════════════════════════════════════════════════════ */
/* ۱) محدوده‌های ایزوله: هیچ قاعدهٔ ظرفی نباید جهتشان را برگرداند */
.tk-ltr,[dir] .tk-ltr{direction:ltr!important;unicode-bidi:isolate!important}
.tk-rtl,[dir] .tk-rtl{direction:rtl!important;unicode-bidi:isolate!important}
/* ۲) بند بدون حرف فارسی و بند انگلیسی درون سؤال فارسی (و برعکس) */
.tk-ltr-block{direction:ltr!important;text-align:left!important;unicode-bidi:isolate}
.tk-rtl-block{direction:rtl!important;text-align:right!important;unicode-bidi:isolate}
.tk-code-line,.exam-rich .tk-code-line,.qbody .tk-code-line{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono","Courier New",monospace!important;
  font-size:.88em!important;font-weight:500!important;line-height:1.95!important;
  background:var(--sk-surface-2,#f6f7f9);border:1px solid var(--sk-line,#e4e7ec);border-radius:10px;
  padding:8px 12px!important;margin:2px 0 12px!important;white-space:pre-wrap;overflow-wrap:anywhere}
code.tk-code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;font-size:.88em;
  background:var(--sk-surface-2,#f6f7f9);border:1px solid var(--sk-line,#e4e7ec);border-radius:6px;padding:1px 6px;
  direction:ltr;unicode-bidi:isolate;white-space:nowrap}
/* ۲ب) گزینه‌ها (ch-073): بندِ تمام‌لاتین (فرمان، مسیر، عبارت انگلیسی) — و در سؤال انگلیسی بندِ تمام‌فارسی — به اندازهٔ
   متن خودش و کنار برچسب گزینه می‌نشیند، نه لبهٔ دیگر کارت؛ بدون جعبه و با همان قلم بقیهٔ گزینه‌ها. */
:is(.option-item>span,.skgr-opt__t,.ft-rev-opt .tx) :is(.tk-ltr-block,.tk-rtl-block){display:block;width:fit-content;max-width:100%;overflow-wrap:anywhere}
/* ۳) صورت سؤال: متن با وزن معمولی؛ پرسش پایانی جدا و برجسته (وزن انتخابی طراح در آزمون رسمی همچنان مقدم است) */
.question-body.modern .qbody .tk-lead,
.rvq-qbody .tk-lead,
.scenario-runtime__body .tk-lead,
.ft-q-body .tk-lead,
.exam-rich>p.tk-lead{font-weight:700;margin-top:6px!important;color:var(--sk-ink,#101828)}
/* ۴) کشویی جای خالی با گزینه‌های لاتین یا کد: چپ‌به‌راست، هم‌عرض متن گزینه */
select.dropdown-cloze-select[dir="ltr"],
.question-body select.dropdown-cloze-select[dir="ltr"],
.question-body.modern.is-cloze select.dropdown-cloze-select[dir="ltr"]{direction:ltr;text-align:left;width:auto;min-width:200px;max-width:100%}
select.dropdown-cloze-select.is-code,
.question-body.modern.is-cloze select.dropdown-cloze-select.is-code{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace!important;font-size:13.5px!important}
select.dropdown-cloze-select option[dir="ltr"]{direction:ltr;text-align:left}
select.dropdown-cloze-select option[dir="rtl"]{direction:rtl;text-align:right}
