/* TimeTracker Web — фирменный слой поверх Bootstrap 5.3 */
:root {
  --tt-accent: #0d6efd;
  --tt-radius: 1rem;
}
body { background: var(--bs-tertiary-bg); }

/* ==== Компактный «приложенческий» стиль: серый текст, плотная вёрстка ==== */
html { font-size: 14px; }

[data-bs-theme="light"] {
  --bs-body-color: #495057;        /* основной текст — серый */
  --bs-secondary-color: #7a828a;
  --bs-tertiary-color: #9aa1a9;
}
[data-bs-theme="dark"] {
  --bs-body-color: #b9c0c7;
  --bs-secondary-color: #8d959d;
  --bs-tertiary-color: #6d757d;
}
/* Ключевые значения и заголовки — чуть ярче серого */
h1, h2, h3, h4, h5, .navbar-brand,
b, strong, .fw-semibold, .fw-bold {
  color: var(--bs-emphasis-color);
}

.btn {
  --bs-btn-padding-y: .3rem;
  --bs-btn-padding-x: .72rem;
  --bs-btn-font-size: .82rem;
}
.btn-lg {
  --bs-btn-padding-y: .48rem;
  --bs-btn-padding-x: 1.3rem;
  --bs-btn-font-size: .95rem;
}
.btn-sm {
  --bs-btn-padding-y: .15rem;
  --bs-btn-padding-x: .45rem;
  --bs-btn-font-size: .74rem;
}

.form-control, .form-select { font-size: .86rem; padding: .32rem .55rem; }
.form-label { font-size: .76rem; margin-bottom: .2rem; }

.card-body { padding: .8rem .95rem; }
.card-header { padding: .55rem .95rem; }
.alert { padding: .45rem .75rem; font-size: .82rem; }
.badge { font-size: .68em; }

.entries-table { font-size: 13px; }
.entries-table td, .entries-table th { padding: .42rem .55rem; }


/* Шапка */
.navbar { -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }

/* Меню-таблетки: горизонтальная прокрутка без скроллбара */
.tt-nav {
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  gap: .25rem;
}
.tt-nav::-webkit-scrollbar { display: none; }
.tt-nav .nav-link {
  white-space: nowrap;
  padding: .26rem .72rem;
  font-size: .82rem;
  border-radius: 2rem;
  color: var(--bs-body-color);
}
.tt-nav .nav-link:hover { color: var(--bs-primary); }
.tt-nav .nav-link.active {
  background: var(--bs-primary);
  color: #fff;
  font-weight: 600;
}

/* Карточки — единый радиус без рамок (тень вместо них) */
.card { border: 0 !important; border-radius: var(--tt-radius) !important; }

/* Таймер */
.timer-clock {
  font-size: clamp(2.9rem, 10vw, 4.4rem);
  font-variant-numeric: tabular-nums;
  letter-spacing: 2px;
  color: var(--bs-danger);
}
.timer-running { background:
  radial-gradient(1200px 300px at 50% -50px,
    rgba(231, 76, 60, .12), transparent 70%); }

/* Недавние задачи — ужимаем длинные подписи */
.recent-btn { max-width: 260px; overflow: hidden; text-overflow: ellipsis; }

/* Таблица записей */
.entries-table thead th { position: sticky; top: 0; z-index: 2; }
.col-paid { width: 110px; }
.row-actions form { display: inline; }
.paid-cb, .paid-header-cb { width: 1.15em; height: 1.15em; }
.task-cell { min-width: 180px; }

/* Колонка действий: приклеена к правому краю при прокрутке таблицы */
.col-actions {
  position: sticky;
  right: 0;
  background: var(--bs-body-bg);
  box-shadow: -8px 0 8px -7px rgba(0, 0, 0, .4);
}
.entries-table thead .col-actions {
  background: var(--bs-tertiary-bg);
  z-index: 3;
}

/* Мобильный: компактнее, второстепенные колонки скрыты (d-none d-md-*) */
@media (max-width: 767.98px) {
  .entries-table { font-size: 13px; }
  .entries-table td, .entries-table th { padding: .35rem .45rem; }
  .entries-table .task-cell { min-width: 110px; }
  .col-paid { width: 42px; }
  .row-actions .btn { padding: .18rem .45rem; font-size: .8rem; }
}

/* Дашборд */
.chart-box { position: relative; height: 300px; }
.chart-box-wide { height: 340px; }
@media (max-width: 576px) { .chart-box { height: 240px; } }

/* Итоговая карточка отчёта */
.primary-card {
  background: linear-gradient(135deg, #0d6efd, #6f42c1);
  color: #fff;
}
.primary-card .text-body-secondary { color: rgba(255,255,255,.75) !important; }

/* Логин */
.login-bg { background: linear-gradient(135deg, #0d6efd 0%, #6f42c1 100%); }
