/* Curator cabinet: Тексеру, Топтарым, журнал, оқушы картасы */
.rv-badge { display: inline-grid; place-items: center; min-width: 20px; height: 20px; margin-left: 4px; padding: 0 6px; border-radius: 99px; background: #d4ff3a; color: #1d2300; font-size: 12px; }
.rv-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 18px; align-items: start; }
.rv-tree { position: sticky; top: 16px; display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; max-height: calc(100vh - 40px); overflow: hidden auto; padding: 14px; }
.rv-tree-course { display: grid; gap: 4px; padding-top: 8px; border-top: 1px solid var(--test-line); }
.rv-tree-course > strong { display: flex; justify-content: space-between; font-size: 14px; }
.rv-tree-course > strong b, .rv-tree-link b { min-width: 22px; padding: 1px 7px; border-radius: 99px; background: #eef0fb; color: #34409d; font-size: 12px; text-align: center; }
.rv-tree-section { display: grid; gap: 2px; margin-top: 4px; }
.rv-tree-section.depth-2 { margin-left: 10px; }
.rv-tree-section.depth-3 { margin-left: 20px; }
.rv-tree-section > small { color: var(--test-muted); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.3px; }
.rv-tree-link { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 8px; border-radius: 9px; color: var(--test-ink); font-size: 13px; }
.rv-tree-link span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rv-tree-link:hover { background: var(--test-tint); }
.rv-tree-link.is-current { background: #34409d; color: #fff; }
.rv-tree-link.is-current b { background: #d4ff3a; color: #1d2300; }
.rv-tree-all { font-weight: 700; }

.rv-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 10px; }
.rv-filters select { width: auto; min-width: 180px; flex: 0 1 260px; }
.rv-bulk { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 10px; padding: 10px 12px; border: 1px solid var(--test-line); border-radius: 14px; background: #fff; }
.rv-bulk .button:last-child { margin-left: auto; }
.rv-list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.rv-item {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  padding: 14px 16px;
  border: 1px solid var(--test-line);
  border-left: 4px solid #d4ff3a;
  border-radius: 14px;
  background: #fff;
}
.rv-item.is-accepted { border-left-color: #2fa36b; background: #fbfdfb; }
.rv-select, .rv-check-space { width: 18px; height: 18px; margin-top: 3px; accent-color: #34409d; }
.rv-main { display: grid; gap: 6px; min-width: 0; }
.rv-who { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; }
.rv-who a { color: var(--test-ink); }
.rv-who a:hover strong { color: var(--test-blue); }
.rv-who small { color: var(--test-muted); font-size: 12px; }
.rv-lesson { color: var(--test-muted); font-size: 13px; overflow-wrap: anywhere; }
.rv-work { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.rv-score { display: inline-flex; align-items: baseline; padding: 4px 10px; border-radius: 10px; font-size: 18px; font-weight: 800; }
.rv-score small { font-size: 12px; font-weight: 600; opacity: 0.75; }
.rv-score.is-passed { background: #e3f5ec; color: #16704a; }
.rv-score.is-failed { background: #fdeee9; color: #b23b22; }
.rv-work-text { display: grid; font-size: 13px; }
.rv-work-text small { color: var(--test-muted); }
.rv-file { display: inline-flex; align-items: center; gap: 10px; max-width: 100%; padding: 8px 12px; border: 1px solid #dfe3ff; border-radius: 10px; background: #f7f8ff; color: inherit; }
.rv-file svg { flex-shrink: 0; width: 18px; height: 18px; color: #34409d; }
.rv-file span { display: grid; min-width: 0; }
.rv-file strong { font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rv-file small { color: var(--test-muted); font-size: 12px; }
.rv-comment { display: flex; gap: 8px; margin: 0; padding: 8px 10px; border-radius: 10px; background: var(--test-tint); font-size: 13px; }
.rv-comment svg { flex-shrink: 0; width: 15px; height: 15px; margin-top: 2px; color: #34409d; }
.rv-actions { display: grid; gap: 8px; justify-items: end; }
.rv-accepted { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 4px 6px; color: #16704a; font-size: 13px; font-weight: 700; }
.rv-accepted svg { width: 16px; height: 16px; }
.rv-accepted small { width: 100%; color: var(--test-muted); font-weight: 500; text-align: right; }
.rv-comment-form { display: grid; gap: 8px; margin-top: 4px; }
.rv-comment-form textarea { width: 100%; resize: vertical; font: inherit; }
.rv-templates { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.rv-template { display: inline-flex; overflow: hidden; border: 1px solid #c9cdf0; border-radius: 99px; background: #fff; }
.rv-template button { border: 0; background: none; padding: 4px 10px; font: inherit; font-size: 13px; cursor: pointer; }
.rv-template button:first-child:hover { background: var(--test-tint); }
.rv-template-remove { padding: 4px 8px !important; border-left: 1px solid #c9cdf0 !important; color: var(--test-muted); }
.rv-comment-actions { display: flex; flex-wrap: wrap; gap: 8px; }

/* Journal: students × lessons */
.jr-legend { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 0 0 12px; color: var(--test-muted); font-size: 13px; }
.jr-legend > span { display: inline-flex; align-items: center; gap: 6px; }
.jr-wrap { overflow: auto; max-height: 75vh; }
.jr-table { border-collapse: separate; border-spacing: 0; width: max-content; min-width: 100%; font-size: 13px; }
.jr-table th, .jr-table td { padding: 8px 10px; border-bottom: 1px solid var(--test-line); background: #fff; text-align: center; white-space: nowrap; }
.jr-table thead th { position: sticky; top: 0; z-index: 2; background: #f6f7fd; color: var(--test-muted); font-size: 12px; }
.jr-table .jr-name { position: sticky; left: 0; z-index: 1; min-width: 190px; text-align: left; }
.jr-table thead .jr-name { z-index: 3; }
.jr-name a { display: block; color: var(--test-ink); font-weight: 700; }
.jr-name a:hover { color: var(--test-blue); }
.jr-name small { color: var(--test-muted); font-weight: 400; font-size: 11px; }
.jr-done { font-weight: 700; color: #34409d; }
.jr-lesson.is-extra { color: #6b7a00; }
.jr-course-start { border-left: 2px solid #c9cdf0 !important; }
.jr-cell.is-empty { color: #c3c7de; }
.jr-score { display: inline-flex; align-items: baseline; padding: 2px 7px; border-radius: 8px; font-weight: 800; }
.jr-score small { font-size: 10px; opacity: 0.7; }
.jr-score.is-passed { background: #e3f5ec; color: #16704a; }
.jr-score.is-failed { background: #fdeee9; color: #b23b22; }
.jr-score.is-open { color: var(--test-muted); }
.jr-tries { margin-left: 3px; color: var(--test-muted); font-size: 11px; }
.jr-dot { display: inline-block; width: 8px; height: 8px; margin-left: 4px; border-radius: 50%; background: #e6a700; vertical-align: middle; }
.jr-file { display: inline-grid; place-items: center; width: 24px; height: 24px; margin-left: 4px; border-radius: 7px; vertical-align: middle; }
.jr-file svg { width: 14px; height: 14px; }
.jr-file.is-pending { background: #fff4dc; color: #87530c; }
.jr-file.is-accepted { background: #e3f5ec; color: #16704a; }

/* Student card */
.pp-lessons { display: grid; gap: 12px; margin-top: 16px; }
.pp-lesson { display: grid; gap: 10px; justify-items: start; }
.pp-lesson header { display: grid; gap: 6px; }
.pp-lesson h3 { margin: 0; font-size: 16px; }
.pp-tries { display: grid; gap: 6px; margin: 0; padding: 0; list-style: none; width: 100%; }
.pp-tries li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; font-size: 13px; }
.pp-tries small { color: var(--test-muted); }

@media (max-width: 900px) {
  .rv-layout { grid-template-columns: minmax(0, 1fr); }
  .rv-tree { position: static; max-height: 260px; }
  .rv-item { grid-template-columns: 22px minmax(0, 1fr); }
  .rv-actions { grid-column: 2; grid-auto-flow: column; justify-content: start; justify-items: start; }
  .rv-bulk .button:last-child { margin-left: 0; }
}
