/* Кабинет ученика (правка 591). Значения — только из tokens.css. Одна колонка, как «Что читать». */
.cb-note { margin: 0 0 var(--sp-3); color: var(--ink2); font-size: var(--fs-14); line-height: 1.5; }
.cb-form { display: grid; gap: var(--sp-1); }
.cb-list { display: grid; gap: var(--sp-3); }
.cb-item { padding: var(--sp-3) var(--sp-4); border: 1px solid var(--line); border-radius: var(--r-block); background: var(--surface2); }
.cb-title { margin: 0 0 var(--sp-1); font-size: var(--fs-16); font-weight: 650; line-height: 1.35; overflow-wrap: anywhere; }
.cb-tasks { margin: 0 0 var(--sp-3); padding-left: var(--sp-4); color: var(--ink2); font-size: var(--fs-14); line-height: 1.5; }
.cb-vk { margin: 0 0 var(--sp-3); min-height: var(--sp-6); }
.cb-age { margin: 0 0 var(--sp-3); padding: 0; border: 0; display: flex; flex-wrap: wrap; gap: var(--sp-2) var(--sp-4); font-size: var(--fs-16); }
.cb-age legend { margin-bottom: var(--sp-2); font-weight: 650; }
.cb-consent { display: flex; gap: var(--sp-2); align-items: flex-start; margin: 0 0 var(--sp-3); font-size: var(--fs-14); line-height: 1.5; }
.cb-consent input { margin-top: var(--sp-1); }
.cb-consent a { color: var(--accent-deep); font-weight: 600; }  /* как ссылка в тексте (паспорт) */
.cb-actions { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin-top: var(--sp-3); }
/* 610: разделы кабинета, связи и группы */
.cb-tabs { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin: var(--sp-4) 0; }
.cb-tabs .btn[aria-current="page"] { background: var(--accent); border-color: var(--accent); color: var(--accent-ink); }
.cb-sub { margin: var(--sp-5) 0 var(--sp-2); font-size: var(--fs-17); font-weight: 650; }
.cb-muted { color: var(--ink2); font-weight: 400; }
.cb-code { margin: var(--sp-3) 0 0; font-size: var(--fs-16); line-height: 1.5; overflow-wrap: anywhere; }
.cb-code strong { font-size: var(--fs-22); letter-spacing: 0.08em; }
.cb-url { user-select: all; font-size: var(--fs-14); }
.cb-members { margin: 0 0 var(--sp-2); padding-left: var(--sp-4); display: grid; gap: var(--sp-2); font-size: var(--fs-15); line-height: 1.5; }
.cb-members .btn { margin-left: var(--sp-1); }
.app.cb.cb-viewing > :not(#cb-other) { display: none; }  /* открыт чужой прогресс — только он и «Назад» */
@media (min-width: 960px) { .app.cb { display: block; max-width: calc(var(--content-max) + 2 * var(--gutter-wide)); } .app.cb > .card + .card { margin-top: var(--sp-5); } }
/* 614: прогресс понятно — полоска «пройдено из скольких», дни недели, «Подробнее» у урока; на 390 без таблиц */
.cb-bar { height: var(--sp-2); border-radius: var(--r-pill); background: var(--ok-soft); overflow: hidden; }
.cb-bar > span { display: block; height: 100%; border-radius: var(--r-pill); background: var(--ok); }
.cb-subject + .cb-subject, .cb-day + .cb-day { margin-top: var(--sp-2); }
.cb-know-h { margin: var(--sp-2) 0 0; font-size: var(--fs-16); }
.cb-knows { list-style: none; margin: var(--sp-2) 0 0; padding: 0; display: grid; gap: var(--sp-3); }
.cb-know { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px var(--sp-3); align-items: baseline; }
.cb-know-n { font-variant-numeric: tabular-nums; color: var(--ink2); } .cb-know-n b { font-size: var(--fs-18); color: var(--ink); }
.cb-know .cb-bar { grid-column: 1 / -1; } .cb-know-tip { grid-column: 1 / -1; font-size: var(--fs-14); color: var(--ink2); }
.cb-know.is-ok .cb-know-tip { color: var(--ok); font-weight: 650; }
.cb-done { color: var(--ok); font-weight: 650; font-size: var(--fs-14); }
.cb-more { margin: 0 0 var(--sp-3); font-size: var(--fs-14); color: var(--ink2); }
.cb-more > summary { cursor: pointer; min-height: var(--control-h-sm); display: flex; align-items: center; font-weight: 600; color: var(--accent-deep); }
.cb-more .cb-tasks { margin-top: var(--sp-1); }
