/* ============================================
   CSS-переменные для тем
   ============================================ */

:root {
    --bg-primary: #ffffff;
    --bg-secondary: #f8f9fa;
    --bg-card: #ffffff;
    --bg-sidebar: #f8f9fa;
    --text-primary: #212529;
    --text-secondary: #6c757d;
    --text-muted: #6c757d;
    --border-color: #dee2e6;
    --border-light: #e9ecef;
    --accent-color: #0d6efd;
    --accent-hover: #0b5ed7;
    --nav-link-color: #333333;
    --nav-link-hover-bg: #e9ecef;
    --card-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
    --input-bg: #ffffff;
    --input-border: #ced4da;
    --table-stripe: rgba(0, 0, 0, 0.05);
    --code-bg: #f8f9fa;
    --pre-bg: #212529;
    --pre-color: #f8f9fa;
    --modal-bg: #ffffff;
    --badge-light-bg: #f8f9fa;
}

[data-theme="dark"] {
    --bg-primary: #1a1d21;
    --bg-secondary: #212529;
    --bg-card: #2b3035;
    --bg-sidebar: #1a1d21;
    --text-primary: #e1e3e6;
    --text-secondary: #adb5bd;
    --text-muted: #6c757d;
    --border-color: #373b3e;
    --border-light: #373b3e;
    --accent-color: #4dabf7;
    --accent-hover: #74c0fc;
    --nav-link-color: #c1c2c5;
    --nav-link-hover-bg: #2b3035;
    --card-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.3);
    --input-bg: #2b3035;
    --input-border: #495057;
    --table-stripe: rgba(255, 255, 255, 0.03);
    --code-bg: #2b3035;
    --pre-bg: #0d1117;
    --pre-color: #e1e3e6;
    --modal-bg: #2b3035;
    --badge-light-bg: #373b3e;

    /* Bootstrap overrides */
    --bs-body-bg: #1a1d21;
    --bs-body-color: #e1e3e6;
    --bs-body-color-rgb: 225, 227, 230;
    --bs-border-color: #373b3e;
    --bs-link-color: #4dabf7;
    --bs-link-hover-color: #74c0fc;
    --bs-emphasis-color: #e1e3e6;
    --bs-secondary-bg: #212529;
    --bs-tertiary-bg: #2b3035;
    --bs-card-bg: #2b3035;
    --bs-card-border-color: #373b3e;
    --bs-modal-bg: #2b3035;
    --bs-modal-border-color: #373b3e;
    --bs-modal-color: #e1e3e6;
    --bs-dropdown-bg: #2b3035;
    --bs-dropdown-border-color: #373b3e;
    --bs-dropdown-color: #e1e3e6;
    --bs-input-bg: #2b3035;
    --bs-input-border-color: #495057;
    --bs-input-color: #e1e3e6;
    --bs-form-select-bg: #2b3035;
    --bs-form-select-border-color: #495057;
    --bs-form-select-color: #e1e3e6;
    --bs-list-group-bg: #2b3035;
    --bs-list-group-border-color: #373b3e;
    --bs-list-group-color: #e1e3e6;
    --bs-list-group-hover-bg: #373b3e;
    --bs-table-bg: #2b3035;
    --bs-table-color: #e1e3e6;
    --bs-table-border-color: #373b3e;
    --bs-table-striped-bg: rgba(255, 255, 255, 0.03);
    --bs-table-hover-bg: rgba(255, 255, 255, 0.05);
    --bs-accordion-bg: #2b3035;
    --bs-accordion-border-color: #373b3e;
    --bs-accordion-btn-color: #e1e3e6;
    --bs-accordion-btn-bg: #2b3035;
    --bs-accordion-active-bg: #212529;
    --bs-accordion-active-color: #4dabf7;
    --bs-nav-tabs-border-color: #373b3e;
    --bs-nav-tabs-link-hover-border-color: #373b3e;
    --bs-nav-tabs-link-active-bg: #2b3035;
    --bs-nav-tabs-link-active-color: #4dabf7;
    --bs-nav-tabs-link-active-border-color: #373b3e #373b3e #2b3035;
    --bs-badge-bg: #495057;
    --bs-badge-color: #e1e3e6;
    --bs-toast-bg: #2b3035;
    --bs-toast-color: #e1e3e6;
    --bs-alert-bg: transparent;
    --bs-alert-border-color: #373b3e;
    --bs-code-color: #e1e3e6;
    --bs-code-bg: #2b3035;
    --bs-highlight-bg: rgba(77, 171, 247, 0.15);
}

/* ============================================
   Базовые стили с учётом темы
   ============================================ */

body {
    background-color: var(--bg-primary) !important;
    color: var(--text-primary) !important;
    transition: background-color 0.3s, color 0.3s;
}

/* Sidebar */
.sidebar {
    min-height: 100vh;
    background-color: var(--bg-sidebar);
    border-right-color: var(--border-color) !important;
}

.sidebar .nav-link {
    color: var(--nav-link-color);
    padding: 0.4rem 1rem;
}

.sidebar .nav-link:hover {
    color: var(--accent-color);
    background-color: var(--nav-link-hover-bg);
    border-radius: 0.25rem;
}

/* Карточки */
.card {
    background-color: var(--bg-card);
    border-color: var(--border-color);
    box-shadow: var(--card-shadow);
}

/* Обзор проекта: карточка растягивается по содержимому */
.tab-pane .card {
    height: auto;
    overflow: visible;
}
.tab-pane .card .card-body {
    overflow: visible;
    max-height: none;
}

.card-header {
    background-color: var(--bg-secondary);
    border-bottom-color: var(--border-color);
}

.card-footer {
    background-color: var(--bg-secondary);
    border-top-color: var(--border-color);
}

/* Формы */
.form-control,
.form-select {
    background-color: var(--input-bg);
    border-color: var(--input-border);
    color: var(--text-primary);
}

.form-control:focus,
.form-select:focus {
    background-color: var(--input-bg);
    color: var(--text-primary);
    border-color: var(--accent-color);
}

.form-check-input:checked {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
}

[data-theme="dark"] .form-check-input {
    background-color: #495057;
    border-color: #6c757d;
}

[data-theme="dark"] .form-check-input:checked {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
}

.form-label {
    color: var(--text-primary);
}

/* Таблицы */
.table {
    color: var(--text-primary);
}

.table > :not(caption) > * > * {
    background-color: var(--bg-card);
    color: var(--text-primary);
    border-bottom-color: var(--border-color);
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: var(--table-stripe);
}

.table-bordered > :not(caption) > * {
    border-color: var(--border-color);
}

/* Текст */
h1, h2, h3, h4, h5, h6 {
    color: var(--text-primary);
}

.text-muted {
    color: var(--text-muted) !important;
}

/* Бейджи */
.badge.bg-light {
    background-color: var(--badge-light-bg) !important;
    color: var(--text-primary) !important;
}

/* Навигация */
.nav-tabs .nav-link {
    color: var(--text-secondary);
    border-color: var(--border-color);
}

.nav-tabs .nav-link:hover {
    color: var(--accent-color);
    border-color: var(--border-color) var(--border-color) transparent;
}

.nav-tabs .nav-link.active {
    background-color: var(--bg-card);
    color: var(--accent-color);
    border-color: var(--border-color) var(--border-color) var(--bg-card);
}

/* Аккордеон */
.accordion-item {
    background-color: var(--bg-card);
    border-color: var(--border-color);
}

.accordion-button {
    background-color: var(--bg-card);
    color: var(--text-primary);
}

.accordion-button:not(.collapsed) {
    background-color: var(--bg-secondary);
    color: var(--accent-color);
}

.accordion-button::after {
    filter: invert(0.5);
}

[data-theme="dark"] .accordion-button::after {
    filter: invert(1);
}

.accordion-body {
    color: var(--text-primary);
}

/* Модальные окна */
.modal-content {
    background-color: var(--modal-bg);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.modal-header {
    border-bottom-color: var(--border-color);
}

.modal-footer {
    border-top-color: var(--border-color);
}

/* Alert */
.alert {
    border-color: var(--border-color);
}

.alert-secondary {
    background-color: var(--bg-secondary);
    color: var(--text-primary);
    border-color: var(--border-color);
}

/* List group */
.list-group-item {
    background-color: var(--bg-card);
    border-color: var(--border-color);
    color: var(--text-primary);
}

.list-group-item-action:hover {
    background-color: var(--nav-link-hover-bg);
    color: var(--accent-color);
}

/* Code / Pre */
code {
    background-color: var(--code-bg);
    color: var(--text-primary);
}

pre {
    background-color: var(--pre-bg);
    color: var(--pre-color);
    border-color: var(--border-color);
}

pre code {
    background-color: transparent;
    color: inherit;
}

/* Task UI — единая высота кнопок и бейджей */
.task-card .btn,
.task-card .badge,
.board-column .card-header .btn,
.board-column .card-header .badge,
.project-header .btn,
.project-header .badge {
    height: 22px;
    min-width: 22px;
    line-height: 20px;
    padding: 0 6px;
    font-size: 0.7rem;
    vertical-align: middle;
}

.task-card .btn {
    padding: 0 4px;
}

.task-card .d-flex.gap-1 {
    flex-wrap: nowrap;
}

.task-card .delete-zone {
    display: inline-flex;
    gap: 4px;
    vertical-align: middle;
}

.status-drag-handle {
    cursor: default;
}

.status-drag-handle.active {
    cursor: grab;
}

.status-drag-handle.active:hover {
    cursor: grabbing;
}
.task-list.drag-over {
    background-color: rgba(77, 171, 247, 0.08);
    border: 2px dashed var(--accent-color);
}

[data-theme="dark"] .task-card {
    background-color: var(--bg-card);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .task-card .task-title,
[data-theme="dark"] .task-card .small {
    color: var(--text-primary);
}

[data-theme="dark"] .task-card .text-muted {
    color: var(--text-muted) !important;
}

[data-theme="dark"] .task-card .card-body {
    background-color: var(--bg-card);
    color: var(--text-primary);
}

[data-theme="dark"] .task-card .card-footer {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
}

[data-theme="dark"] .subtask-card {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .board-column .card {
    background-color: var(--bg-card);
    border-color: var(--border-color);
}

[data-theme="dark"] .board-column .card-header {
    background-color: var(--bg-secondary);
    border-color: var(--border-color);
    color: var(--text-primary);
}

[data-theme="dark"] .board-column .card-body {
    background-color: var(--bg-card);
}

/* Свитч темы */
.theme-switch {
    cursor: pointer;
}

.theme-switch .form-check-input {
    cursor: pointer;
}

/* HR */
hr {
    border-color: var(--border-color);
}

/* Link tiles */
.link-tile {
    background-color: var(--bg-card);
    border-color: var(--border-color) !important;
}

/* Toast */
.toast {
    background-color: var(--bg-card);
    color: var(--text-primary);
}

/* Project group */
.project-group {
    border-color: var(--border-color);
}

.project-header {
    color: var(--text-primary);
    background-color: var(--bg-secondary) !important;
}

.project-header .project-toggle {
    color: var(--text-primary);
}

.project-header[aria-expanded="false"] .project-toggle {
    transform: rotate(-90deg);
}

.edit-zone-hidden {
    display: none !important;
}

/* Scrollbar */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

::-webkit-scrollbar-track {
    background: var(--bg-secondary);
}

::-webkit-scrollbar-thumb {
    background: var(--border-color);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--text-muted);
}
