/* Страница куратора.

   Куратор заходит сюда не любоваться списком, а ответить себе на два
   вопроса: как учатся мои дети и что я им должен. Поэтому и строк на
   странице ровно две: сводка сверху и таблица по группам под ней —
   успеваемость и задачи в одной строке про одного ученика. */

/* ── сводка ── */

.cur-sum { display: grid; grid-template-columns: 260px 1fr; gap: 10px; margin-bottom: 14px; }

.cur-score {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 16px; background: var(--surface);
  border: 1px solid var(--line); border-radius: var(--r-card);
}
.cur-ring { flex: 0 0 64px; width: 64px; height: 64px; position: relative; }
.cur-ring svg { display: block; transform: rotate(-90deg); }
.cur-ring b {
  position: absolute; inset: 0; display: grid; place-items: center;
  font-size: 15px; font-weight: 700; letter-spacing: -.02em; color: var(--ink);
}
.cur-score-t { min-width: 0; }
.cur-score-t b { display: block; font-size: 13px; }
.cur-score-t span { font-size: 11.5px; color: var(--ink-3); }
.cur-score-t i { display: block; margin-top: 4px; font-style: normal; font-size: 11.5px; color: var(--ink-3); }

.cur-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.cur-tile {
  padding: 12px 14px; background: var(--surface);
  border: 1px solid var(--line); border-radius: var(--r-card);
  display: flex; flex-direction: column; justify-content: center; gap: 2px;
}
.cur-tile b { font-size: 22px; font-weight: 700; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.cur-tile span { font-size: 11.5px; color: var(--ink-3); }
.cur-tile small { font-size: 11px; color: var(--ink-3); }

/* ── панель управления ── */

.cur-bar { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.cur-tabs { display: flex; gap: 6px; }
.cur-tabs .sch-btn.on { background: var(--ink); border-color: var(--ink); color: #fff; }
.cur-only {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 12.5px; color: var(--ink-2); cursor: pointer; user-select: none;
}
.cur-only input { accent-color: var(--green); }

/* ── доска: группа за группой ── */

.cur-gsec { margin-bottom: 12px; }
.cur-gtitle { display: flex; align-items: baseline; gap: 8px; padding: 0 4px 6px; }
.cur-gtitle b { font-size: 14px; letter-spacing: -.01em; }
.cur-gtitle small { font-size: 11.5px; color: var(--ink-3); }
.cur-gtitle .cur-open {
  margin-left: auto; font-size: 11.5px; font-weight: 600;
  color: var(--mid); background: var(--mid-bg); padding: 2px 8px; border-radius: 999px;
}
.cur-gtitle .cur-open.zero { color: var(--green-dark); background: var(--green-soft); }

.cur-card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; }
.cur-tbl { width: 100%; border-collapse: collapse; }
.cur-tbl th {
  padding: 8px 12px; text-align: left; font-size: 10.5px; font-weight: 600;
  letter-spacing: .04em; text-transform: uppercase; color: var(--ink-3);
  background: var(--surface-2); border-bottom: 1px solid var(--line);
  white-space: nowrap;
}
.cur-tbl td { padding: 8px 12px; border-bottom: 1px solid var(--line-2); vertical-align: middle; }
.cur-tbl tr:last-child td { border-bottom: 0; }
.cur-tbl tr:hover td { background: var(--surface-2); }
.cur-tbl .r { text-align: right; }

.cur-name { display: flex; align-items: center; gap: 9px; background: none; border: 0; padding: 0; cursor: pointer; text-align: left; }
.cur-ava {
  flex: 0 0 26px; width: 26px; height: 26px; border-radius: 50%;
  background: var(--surface-3, #eef1ef); color: var(--ink-3);
  display: grid; place-items: center; font-size: 11px; font-weight: 700;
}
.cur-who { display: block; min-width: 0; }
.cur-name b { display: block; font-size: 13.5px; font-weight: 600; color: var(--ink); }
.cur-name:hover b { color: var(--green-dark); }
.cur-facts { display: none; font-size: 11px; color: var(--ink-3); }

/* число и тонкая полоска под ним: цифру читают, полоску видят боковым зрением */
.cur-m { min-width: 62px; }
.cur-m b { font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.cur-m i { display: block; height: 3px; margin-top: 4px; border-radius: 2px; background: var(--line); }
.cur-m i span { display: block; height: 100%; border-radius: 2px; background: var(--green); }
.cur-m.warn i span { background: var(--mid); }
.cur-m.bad i span { background: var(--low); }
.cur-m.warn b { color: var(--mid); }
.cur-m.bad b { color: var(--low); }
.cur-dash { color: var(--ink-3); font-size: 13px; }

.cur-exam b { font-size: 13.5px; font-weight: 700; font-variant-numeric: tabular-nums; }
.cur-exam small { font-size: 11px; color: var(--ink-3); margin-left: 5px; }
.cur-up { color: var(--green-dark); font-weight: 600; }
.cur-down { color: var(--low); font-weight: 600; }
.cur-goal-cell b { font-size: 13px; font-weight: 600; color: var(--violet); font-variant-numeric: tabular-nums; }
.cur-goal-cell small { display: block; font-size: 10.5px; color: var(--ink-3); }

/* задачи — четыре значка вместо четырёх подписей: строка не растёт */
.cur-acts { display: flex; gap: 5px; justify-content: flex-end; }
.cur-act {
  width: 28px; height: 28px; display: grid; place-items: center;
  border-radius: 9px; cursor: pointer; position: relative;
  border: 1px solid var(--mid); background: var(--mid-bg); color: var(--mid);
}
.cur-act svg { width: 15px; height: 15px; }
.cur-act:hover { filter: brightness(.96); }
.cur-act.ok { border-color: var(--line); background: var(--surface-2); color: var(--ink-3); }
.cur-act.ok::after {
  content: ""; position: absolute; right: -1px; bottom: -1px;
  width: 7px; height: 7px; border-radius: 50%; background: var(--green);
  border: 1.5px solid var(--surface);
}

.cur-legend { display: flex; gap: 14px; flex-wrap: wrap; padding: 8px 4px 0; font-size: 11px; color: var(--ink-3); }
.cur-legend span { display: inline-flex; align-items: center; gap: 5px; }
.cur-legend svg { width: 13px; height: 13px; }

/* ── личные ссылки на регистрацию ── */

.jn-note { padding: 0 4px 10px; font-size: 12px; color: var(--ink-3); line-height: 1.5; }
.jn-tbl td { vertical-align: middle; }
.jn-cell { width: 34%; }
.jn-tbl b { font-size: 13.5px; }
.jn-sub { display: block; font-size: 11px; color: var(--ink-3); }
.jn-ok { font-size: 11.5px; font-weight: 600; color: var(--green-dark); }
.jn-make {
  font-size: 12px; padding: 5px 10px; border-radius: 9px; cursor: pointer;
  border: 1px solid var(--line); background: var(--surface); color: var(--ink-2);
}
.jn-make:hover { border-color: var(--green); color: var(--green-dark); }
.jn-row {
  display: flex; align-items: center; gap: 6px;
  padding: 4px 0; border-top: 1px solid var(--line-2);
}
.jn-row:first-child { border-top: 0; }
.jn-who { flex: 1 1 auto; min-width: 96px; }
.jn-who b { font-size: 12.5px; font-weight: 600; }
.jn-who small { display: block; font-size: 10.5px; color: var(--ink-3); }
.jn-copy {
  flex: 0 0 auto; font-size: 12px; padding: 5px 10px; border-radius: 9px; cursor: pointer;
  border: 1px solid var(--green); background: var(--green-soft); color: var(--green-dark);
  font-weight: 600;
}
.jn-url {
  flex: 0 0 auto; font-size: 11px; padding: 5px 8px; border-radius: 9px; cursor: pointer;
  border: 1px solid var(--line); background: var(--surface); color: var(--ink-3);
}
.jn-url:hover { border-color: var(--green); color: var(--green-dark); }
.jn-again {
  flex: 0 0 auto; font-size: 11px; padding: 5px 8px; border-radius: 9px; cursor: pointer;
  border: 1px solid var(--line); background: var(--surface); color: var(--ink-3);
}
.jn-again:hover { border-color: var(--mid); color: var(--mid); }
.jn-drop {
  flex: 0 0 auto; width: 22px; height: 22px; border-radius: 7px; cursor: pointer;
  border: 1px solid var(--line); background: var(--surface); color: var(--ink-3);
}
.jn-drop:hover { border-color: var(--low); color: var(--low); }

/* ── карточка ученика ── */

.cur-dlg { padding: 16px 18px 14px; }
.cur-row { display: flex; gap: 10px; padding: 7px 0; border-top: 1px solid var(--line-2); }
.cur-row:first-child { border-top: 0; }
.cur-row span { flex: 0 0 42%; font-size: 12.5px; color: var(--ink-3); }
.cur-row b { font-size: 13.5px; font-weight: 600; }
.cur-row a { color: var(--green-dark); }

.cur-goal { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-top: 1px solid var(--line-2); }
.cur-goal:first-child { border-top: 0; }
.cur-goal span { flex: 1; font-size: 13px; }
.cur-goal input { width: 90px; }

/* ── расписание своих групп ── */

.cur-sched-cap {
  margin: 14px 0 6px; font-size: 12.5px; font-weight: 600; color: var(--ink-2);
}
.cur-sched-cap:first-child { margin-top: 0; }

/* ── телефон ── */

@media (max-width: 820px) {
  .cur-sum { grid-template-columns: 1fr; }
  .cur-tiles { grid-template-columns: repeat(2, 1fr); }
  .cur-tbl .hide-s { display: none; }
  .cur-facts { display: block; margin-top: 1px; line-height: 1.35; }
  .cur-name { align-items: flex-start; }
  .cur-ava { margin-top: 2px; }
  .cur-tbl th, .cur-tbl td { padding: 8px; }
  .cur-bar .sch-sel { flex: 1 1 140px; }
  .jn-cell { width: auto; }
  .jn-url { display: none; }
  .jn-row { flex-wrap: wrap; }
  .jn-who { flex: 1 0 100%; }
}
