:root {
  --sj-dark: #1d2330;
  --sj-accent: #ff6b35;
}

body {
  background: #f5f6f8;
  font-size: 14px;
}

.navbar {
  background: var(--sj-dark);
}

.navbar-brand {
  color: #fff;
  font-weight: 600;
  letter-spacing: .02em;
}

.nav-link-main {
  color: #c8cdd8;
  text-decoration: none;
  padding: .25rem .6rem;
  border-radius: .35rem;
  white-space: nowrap;
}

.nav-link-main:hover {
  color: #fff;
  background: rgba(255, 255, 255, .08);
}

.nav-link-main.active {
  color: #fff;
  background: rgba(255, 107, 53, .22);
}

.nav-user {
  color: #c8cdd8;
  text-decoration: none;
  font-size: 13px;
}

.nav-user:hover { color: #fff; }

.card {
  border: 1px solid #e4e7ec;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .04);
}

.table > :not(caption) > * > * { padding: .5rem .6rem; }

.table thead th {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .03em;
  color: #667085;
  font-weight: 600;
}

.badge-group-old { background: #0f7b6c; }
.badge-group-new { background: #3b5bdb; }
.badge-group-svoi { background: #7048e8; }

/* Вход — отдельная страница без навбара */
.login-page {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  background: var(--sj-dark);
}

.login-box {
  width: 340px;
  max-width: calc(100% - 2rem);
  background: #fff;
  border-radius: .6rem;
  padding: 1.8rem;
}

.stat-tile {
  background: #fff;
  border: 1px solid #e4e7ec;
  border-radius: .5rem;
  padding: .8rem 1rem;
}

.stat-tile .value {
  font-size: 24px;
  font-weight: 600;
  line-height: 1.1;
}

.stat-tile .label {
  font-size: 12px;
  color: #667085;
}

.expired { color: #b42318; }
.soon { color: #b54708; }

/* Сортируемые столбцы в списке участников */
th.sortable { cursor: pointer; user-select: none; white-space: nowrap; }
th.sortable::after { content: " ↕"; color: var(--bs-secondary-color, #999); font-size: .8em; }
th.sortable.asc::after { content: " ↑"; color: inherit; }
th.sortable.desc::after { content: " ↓"; color: inherit; }

/* trainbot */
.day-head { font-weight: 600; margin: 1rem 0 .4rem; }
.lvl { display: inline-block; min-width: 1.6em; text-align: center; border-radius: .3rem;
       background: #eef2ff; color: #3538cd; font-weight: 600; padding: 0 .3em; }
.lvl-none { background: #f2f4f7; color: #667085; }
.cap-bar { height: 6px; background: #eaecf0; border-radius: 3px; overflow: hidden; min-width: 80px; }
.cap-bar > div { height: 100%; background: #12b76a; }
.cap-bar.full > div { background: #f04438; }
.muted-row { opacity: .5; }
pre.card-preview { white-space: pre-wrap; font-family: inherit; background: #f9fafb; border-radius: .4rem; padding: .6rem; }
