/* Страницы хаба в стиле курса: вход, ожидание запуска, ошибки, админка.
 *
 * Палитра та же, что в учебной среде (qq/src/styles.css), поэтому переход между
 * двумя средами не читается как переход между двумя продуктами. Заголовочный
 * шрифт Unbounded отдаётся из статики самого хаба: наружу за ним никто не ходит,
 * значит и CORS с провалом загрузки шрифта здесь не при чём.
 *
 * Файл дописывается поверх бутстрапа JupyterHub, а не заменяет его: правится
 * цвет и типографика, разметка остаётся штатной и переживает обновления.
 */

@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 600 700;
  font-display: swap;
  src: url('unbounded-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}

@font-face {
  font-family: 'Unbounded';
  font-style: normal;
  font-weight: 600 700;
  font-display: swap;
  src: url('unbounded-latin.woff2') format('woff2');
  unicode-range:
    U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --qq-ink: #0a0e1a;
  --qq-panel: #111728;
  --qq-panel-soft: #0d1322;
  --qq-line: #1f2940;
  --qq-fog: #8290ae;
  --qq-chalk: #e8ecf7;
  --qq-amp: #7cf5d0;
  --qq-accent: #ff5d73;
  --qq-warn: #ffb454;
}

body {
  background: var(--qq-ink);
  color: var(--qq-chalk);
  font-family: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

h1, h2, h3, .qq-wordmark {
  font-family: 'Unbounded', system-ui, sans-serif;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--qq-chalk);
}

a {
  color: var(--qq-amp);
}

a:hover, a:focus {
  color: #b6fbe6;
}

/* Шапка и подвал штатных страниц хаба */
.navbar, .navbar-dark, .navbar-light, footer {
  background: var(--qq-panel) !important;
  border-bottom: 1px solid var(--qq-line);
  color: var(--qq-chalk);
}

.navbar a, .navbar .nav-link, .navbar-brand {
  color: var(--qq-chalk) !important;
}

.container, .container-fluid, .row, .col, main {
  color: inherit;
}

/* Карточки и панели бутстрапа */
.card, .panel, .list-group-item, .modal-content, .dropdown-menu {
  background: var(--qq-panel-soft);
  border-color: var(--qq-line);
  color: var(--qq-chalk);
}

.table, .table td, .table th {
  color: var(--qq-chalk);
  border-color: var(--qq-line);
}

/* Кнопки: главное действие — мятное, опасное — коралловое */
.btn-primary, .btn-jupyter {
  background: var(--qq-amp);
  border-color: var(--qq-amp);
  color: #06231c;
  font-weight: 600;
}

.btn-primary:hover, .btn-jupyter:hover,
.btn-primary:focus, .btn-jupyter:focus {
  background: #b6fbe6;
  border-color: #b6fbe6;
  color: #06231c;
}

.btn-danger, .btn-stop {
  background: var(--qq-accent);
  border-color: var(--qq-accent);
  color: #2b0710;
  font-weight: 600;
}

.btn-secondary, .btn-light, .btn-default {
  background: var(--qq-panel);
  border-color: var(--qq-line);
  color: var(--qq-chalk);
}

/* Поля ввода */
.form-control, .form-select, input, select, textarea {
  background: var(--qq-panel-soft);
  border-color: var(--qq-line);
  color: var(--qq-chalk);
}

.form-control:focus, input:focus {
  background: var(--qq-panel-soft);
  border-color: var(--qq-amp);
  color: var(--qq-chalk);
  box-shadow: 0 0 0 0.15rem rgba(124, 245, 208, 0.25);
}

/* Полоса прогресса на странице «среда запускается» */
.progress {
  background: var(--qq-panel);
}

.progress-bar {
  background: var(--qq-amp);
}

/* Сообщения */
.alert-danger, .error {
  background: rgba(255, 93, 115, 0.12);
  border-color: var(--qq-accent);
  color: #ffd0d7;
}

.alert-info {
  background: rgba(124, 245, 208, 0.1);
  border-color: var(--qq-amp);
  color: var(--qq-chalk);
}

.text-muted, .help-block, small {
  color: var(--qq-fog) !important;
}

/* Карточка профиля на странице Hub Control Panel: единственная страница хаба,
   которую человек открывает сам, поэтому вход в профиль виден именно там. */
.qq-profile-card {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  flex-wrap: wrap;
  background: var(--qq-panel-soft);
  border: 1px solid var(--qq-line);
  border-radius: .7rem;
  padding: 1.1rem 1.3rem;
  margin: 1.2rem 0 1.8rem;
}

.qq-profile-title {
  font-family: 'Unbounded', system-ui, sans-serif;
  font-weight: 700;
  font-size: 1.1rem;
  margin-bottom: .2rem;
}

.qq-profile-hint {
  color: var(--qq-fog);
  font-size: .95rem;
  max-width: 42rem;
}

.qq-profile-card .btn {
  margin-left: auto;
}

@media (pointer: coarse) {
  .qq-profile-card .btn { min-height: 44px; }
}
