/* Sora LMS Pro Pack: gradebook (admin sheet and learner Grades page). */
.sora-gb {
	--s-brand: var(--tutor-color-primary, #3E64DE);
	--s-ink: var(--tutor-text-primary, #212327);
	--s-text: var(--tutor-text-secondary, #41454F);
	--s-muted: var(--tutor-text-subdued, #5B616F);
	--s-line: var(--tutor-border-idle, #E3E5EA);
	--s-surface: var(--tutor-surface-base, #FFFFFF);
	--s-subtle: var(--tutor-surface-l1, #F6F7F9);
}
.sora-gb-alert { justify-self: start; padding: 8px 14px; border-radius: 6px; background: #FEE4E2; color: #D92D20; font-weight: 500; }
.sora-gb-help { margin: 0; color: var(--s-muted); font-size: 13px; }
.sora-gb-filters { display: flex; flex-wrap: wrap; gap: 8px; }
.sora-gb-filters select, .sora-gb-filters input, .sora-gb-in { height: 40px; min-width: 200px; padding: 0 12px; border: 1px solid #C3C5CB; border-radius: 6px; font: 14px Inter, sans-serif; color: var(--s-ink); background: #fff; box-sizing: border-box; max-width: 100%; }
.sora-gb-filters input[type=search] { flex: 1; min-width: 240px; }
.sora-gb-filters select:focus, .sora-gb-filters input:focus, .sora-gb-in:focus { outline: none; border-color: var(--s-brand); box-shadow: 0 0 0 3px rgba(62, 100, 222, .2); }
.sora-gb-in { min-width: 0; width: 160px; }
.sora-gb-actions { display: flex; gap: 8px; margin: 12px 0 0; }
.sora-gb-scale { display: grid; gap: 12px; max-width: 560px; }
.sora-gb-wrap { max-width: 100%; }
.sora-gb-table th, .sora-gb-table td { white-space: nowrap; vertical-align: middle; }
.sora-gb-table thead th { text-transform: none; letter-spacing: 0; font-size: 13px; color: var(--s-ink); font-weight: 600; }
.sora-gb-type { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: var(--s-muted); font-weight: 500; }
.sora-gb-table td small { display: block; color: var(--s-muted); font-size: 12px; }
.sora-gb-sticky { position: sticky; left: 0; background: #fff; z-index: 1; box-shadow: 1px 0 0 var(--s-line); }
.sora-gb-who { display: flex; align-items: center; gap: 10px; font-weight: 500; color: var(--s-ink); }
.sora-gb-who img { border-radius: 50%; }
.sora-gb-who > span { display: grid; }
.sora-gb-who small { font-weight: 400; color: var(--s-muted); font-size: 12px; }
.sora-gb-cell strong { display: inline-grid; place-items: center; min-width: 26px; height: 26px; margin-right: 4px; border-radius: 6px; background: #EBF0FD; color: var(--s-brand); font-size: 13px; }
.sora-gb-cell.is-fail strong { background: #FEE4E2; color: #D92D20; }
.sora-gb-cell.is-pass strong { background: #E7F6EC; color: #12804A; }
.sora-gb-letter { display: inline-grid; place-items: center; min-width: 32px; height: 32px; border-radius: 8px; background: var(--s-brand); color: #fff; font-weight: 700; }
.sora-gb-none { color: var(--s-muted); }
.sora-chip { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: 999px; font-size: 12px; font-weight: 600; white-space: nowrap; }
.sora-chip--pending { background: #FEF0C7; color: #B54708; }
.sora-chip--pass { background: #E7F6EC; color: #12804A; }
.sora-chip--fail { background: #FEE4E2; color: #D92D20; }
.sora-chip--none { background: var(--s-subtle); color: var(--s-muted); }

/* Learner page */
.sora-gb-summary { margin-bottom: 20px; }
.sora-gb-big { display: flex; align-items: center; gap: 16px; padding: 20px; border: 1px solid var(--s-line); border-radius: 12px; background: var(--s-surface); }
.sora-gb-big__letter { display: grid; place-items: center; width: 64px; height: 64px; border-radius: 14px; background: var(--s-brand); color: #fff; font-size: 28px; font-weight: 700; flex: none; }
.sora-gb-big__meta { display: grid; gap: 2px; }
.sora-gb-big__meta strong { font-size: 18px; color: var(--s-ink); }
.sora-gb-big__meta span { color: var(--s-muted); font-size: 14px; }
.sora-gb-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.sora-gb-item { display: flex; align-items: center; gap: 14px; padding: 14px 16px; border: 1px solid var(--s-line); border-radius: 12px; background: var(--s-surface); }
.sora-gb-item__icon { flex: none; width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; color: var(--s-brand); background: color-mix(in srgb, var(--s-brand) 12%, transparent); }
.sora-gb-item__main { flex: 1; min-width: 0; display: grid; }
.sora-gb-item__main a { color: var(--s-ink); font-weight: 500; text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sora-gb-item__main a:hover { color: var(--s-brand); }
.sora-gb-item__main small { color: var(--s-muted); font-size: 13px; }
.sora-gb-item__grade { display: flex; align-items: center; gap: 8px; flex: none; }
.sora-gb-item__grade strong { font-size: 18px; color: var(--s-ink); }
.sora-gb-item__grade > span:not(.sora-chip) { color: var(--s-muted); }
@media (max-width: 560px) {
	.sora-gb-item { flex-wrap: wrap; }
	.sora-gb-item__grade { width: 100%; padding-left: 54px; }
	.sora-gb-filters select, .sora-gb-filters input[type=search] { width: 100%; min-width: 0; }
}
.sora-gb-table tbody th { text-transform: none; letter-spacing: 0; font-size: 14px; font-weight: 400; }

[class*="sora-"][hidden], .sora-admin [hidden] { display: none !important; }
