/* ==========================================
   OBSIDIAN — Refined Dark Minimalism
   Один акцент, десатурированные статусы,
   никакого glow. Jost + JetBrains Mono.
   ========================================== */

@import url('https://fonts.googleapis.com/css2?family=Jost:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');

/* ── Palette ───────────────────────────────────────────────── */
:root {
    /* Backgrounds — сине-угольные, не чисто-чёрные */
    --void:    #09090e;
    --space:   #0e0f16;
    --dark:    #12131c;
    --surface: #16182200;
    --elevated:#1a1c26;
    --card:    #1e2030;

    /* Borders — едва заметные */
    --border:       rgba(255, 255, 255, 0.07);
    --glass-border: rgba(255, 255, 255, 0.09);
    --glass:        rgba(14, 15, 22, 0.88);
    --glass-glow:   transparent;

    /* Единственный акцент — приглушённый индиго */
    --neon-pink:    #7b8cde;
    --neon-magenta: #6b7cce;
    --neon-violet:  #8b7ec8;
    --neon-purple:  #7b6eb8;
    --neon-cyan:    #5b9ed4;
    --neon-blue:    #6b7cde;

    /* Градиенты — сдержанные */
    --gradient-main:    linear-gradient(135deg, #7b8cde 0%, #8b7ec8 100%);
    --gradient-cool:    linear-gradient(135deg, #6b7cce 0%, #5b9ed4 100%);
    --gradient-success: linear-gradient(135deg, #5a9e7c 0%, #5b9ed4 100%);
    --gradient-fire:    linear-gradient(135deg, #c45c5c 0%, #b8874a 100%);
    --gradient-warning: linear-gradient(135deg, #b8874a 0%, #c4a45c 100%);
    --gradient-danger:  linear-gradient(135deg, #c45c5c 0%, #b84a4a 100%);

    /* Статусы — десатурированные, не кричащие */
    --status-progress: #cc00ff;
    --status-review:   #0099ff;
    --status-done:     #00ff55;
    --status-overdue:  #ff0000;
    --status-hold:     #ffdd00;

    /* Текст */
    --text-primary:   #e2e4ef;
    --text-secondary: rgba(226, 228, 239, 0.62);
    --text-muted:     rgba(226, 228, 239, 0.38);

    /* Тени — никакого glow */
    --glow-pink: 0 2px 8px rgba(0,0,0,0.4);
    --glow-cyan: 0 2px 8px rgba(0,0,0,0.4);
    --glow-fire: 0 2px 8px rgba(0,0,0,0.4);

    /* Шрифты */
    --font-display: 'Jost', sans-serif;
    --font-body:    'Jost', sans-serif;
    --font-mono:    'JetBrains Mono', monospace;

    /* Скругления */
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 14px;
    --radius-xl: 20px;
}

/* ── Сброс базового cyberpunk фона ─────────────────────────── */

/* Убираем анимированные orbs и сетку */
body::before {
    background: radial-gradient(
        ellipse 80% 60% at 20% 0%,
        rgba(107, 124, 222, 0.06) 0%,
        transparent 60%
    );
    animation: none;
}

/* Убираем scan-line */
body::after {
    display: none;
}

body {
    background: var(--space);
    font-family: 'Jost', sans-serif;
    font-weight: 400;
    color: var(--text-primary);
}

/* ── Глобальный шрифт ──────────────────────────────────────── */
*, button, input, select, textarea {
    font-family: 'Jost', sans-serif;
}

.task-deadline,
.task-status-badge,
.task-count,
.filter-group label,
.review-header,
.user-avatar {
    font-family: 'JetBrains Mono', monospace;
}

/* ── Header ────────────────────────────────────────────────── */
.app-header {
    background: rgba(14, 15, 22, 0.92);
    backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--border);
    box-shadow: none;
}

.app-title {
    font-family: 'Jost', sans-serif;
    font-weight: 600;
    font-size: 17px;
    letter-spacing: 3px;
    background: linear-gradient(135deg, #e2e4ef 0%, rgba(226,228,239,0.6) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.app-title::after {
    display: none;
}

/* ── Icon buttons ───────────────────────────────────────────── */
.btn-icon {
    background: transparent;
    border-color: var(--border);
    color: var(--text-muted);
}
.btn-icon:hover {
    background: rgba(255,255,255,0.04);
    border-color: rgba(255,255,255,0.14);
    color: var(--text-primary);
    box-shadow: none;
    transform: none;
}

/* ── Menu ───────────────────────────────────────────────────── */
.menu-item {
    font-size: 15px;
    font-weight: 400;
    color: var(--text-secondary);
}
.menu-item:hover {
    color: var(--text-primary);
    background: rgba(255,255,255,0.04);
}
.menu-item::before {
    background: var(--gradient-main);
}

/* ── Kanban секции ──────────────────────────────────────────── */

/* Скрыть индикаторные палочки */
.kanban-section-indicator {
    display: none !important;
}
.kanban-section-left {
    gap: 0;
    justify-content: center;
    flex: unset;
}

/* Хедер секции — текст по центру */
.kanban-section-header {
    position: relative;
    justify-content: center;
    padding: 15px 16px;
}
.kanban-section-right {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
}
.kanban-section-header:hover {
    background: rgba(255,255,255,0.02);
}

/* Заголовок h3 — Jost Medium, нет neon */
.kanban-section-header h3 {
    font-family: 'Jost', sans-serif;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    text-shadow: none;
    animation: none;
    color: var(--text-muted);
}

/* Секция — нейтральная рамка */
.kanban-section {
    background: var(--elevated);
    border-color: var(--border);
    box-shadow: none;
    transition: border-color 0.2s ease;
}

/* Счётчик — нейтральный */
.task-count {
    font-size: 12px;
    font-family: 'JetBrains Mono', monospace;
    background: rgba(255,255,255,0.06);
    color: var(--text-muted);
}
.task-count.has-items {
    background: rgba(255,255,255,0.10);
    color: var(--text-secondary);
    box-shadow: none;
}

/* Тонкая цветная линия под хедером (без glow) */
.kanban-section-header::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 16px;
    right: 16px;
    height: 1px;
}

/* ── Статусные цвета — десатурированные ────────────────────── */

/* В РАБОТЕ */
.kanban-section[data-status="in_progress"] {
    border-color: rgba(155, 143, 212, 0.18);
}
.kanban-section[data-status="in_progress"] .kanban-section-header h3 {
    color: var(--status-progress);
}
.kanban-section[data-status="in_progress"] .kanban-section-header::after {
    background: var(--status-progress);
    opacity: 0.35;
}
.kanban-section[data-status="in_progress"] .task-count.has-items {
    color: var(--status-progress);
    background: rgba(155, 143, 212, 0.10);
}

/* НА ПАУЗЕ */
.kanban-section[data-status="on_hold"] {
    border-color: rgba(184, 128, 80, 0.18);
}
.kanban-section[data-status="on_hold"] .kanban-section-header h3 {
    color: var(--status-hold);
}
.kanban-section[data-status="on_hold"] .kanban-section-header::after {
    background: var(--status-hold);
    opacity: 0.35;
}
.kanban-section[data-status="on_hold"] .task-count.has-items {
    color: var(--status-hold);
    background: rgba(184, 128, 80, 0.10);
}

/* ПРОСРОЧЕНО */
.kanban-section[data-status="overdue"] {
    border-color: rgba(196, 96, 96, 0.22);
}
.kanban-section[data-status="overdue"] .kanban-section-header h3 {
    color: var(--status-overdue);
    animation: none;
}
.kanban-section[data-status="overdue"] .kanban-section-header::after {
    background: var(--status-overdue);
    opacity: 0.40;
}
.kanban-section[data-status="overdue"] .task-count.has-items {
    color: var(--status-overdue);
    background: rgba(196, 96, 96, 0.12);
    animation: none;
}

/* НА ПРОВЕРКЕ */
.kanban-section[data-status="pending_review"] {
    border-color: rgba(91, 158, 212, 0.18);
}
.kanban-section[data-status="pending_review"] .kanban-section-header h3 {
    color: #5b9ed4;
    animation: none;
}
.kanban-section[data-status="pending_review"] .kanban-section-header::after {
    background: #5b9ed4;
    opacity: 0.35;
}
.kanban-section[data-status="pending_review"] .task-count.has-items {
    color: #5b9ed4;
    background: rgba(91, 158, 212, 0.10);
}

/* ГОТОВО */
.kanban-section[data-status="completed"] {
    border-color: rgba(90, 158, 124, 0.18);
}
.kanban-section[data-status="completed"] .kanban-section-header h3 {
    color: var(--status-done);
}
.kanban-section[data-status="completed"] .kanban-section-header::after {
    background: var(--status-done);
    opacity: 0.35;
}
.kanban-section[data-status="completed"] .task-count.has-items {
    color: var(--status-done);
    background: rgba(90, 158, 124, 0.10);
}

/* ── Task Cards ─────────────────────────────────────────────── */
.task-card {
    background: var(--card);
    border-color: var(--border);
    box-shadow: none;
    transition: border-color 0.18s ease, background 0.18s ease;
    transform-style: flat;
    perspective: none;
}
.task-card::before {
    display: none;
}
.task-card::after {
    display: none;
}
.task-card:hover {
    transform: none;
    border-color: rgba(255,255,255,0.14);
    background: #222438;
    box-shadow: none;
}

.task-card-title {
    font-family: 'Jost', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: var(--text-primary);
    line-height: 1.4;
}

.task-card-description {
    font-family: 'Jost', sans-serif;
    font-size: 13px;
    font-weight: 400;
    color: var(--text-secondary);
    line-height: 1.55;
}

.task-card-footer {
    border-top-color: rgba(255,255,255,0.05);
}

.task-assignee span {
    font-family: 'Jost', sans-serif;
    font-size: 13px;
    font-weight: 600;
}

.task-deadline {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    color: var(--text-muted);
    background: rgba(255,255,255,0.04);
}
.task-deadline.soon {
    color: var(--status-hold);
    background: rgba(184,128,80,0.10);
}
.task-deadline.overdue {
    color: var(--status-overdue);
    background: rgba(196,96,96,0.12);
    animation: none;
}

/* Убрать urgentShake */
@keyframes urgentShake {
    0%, 100% { transform: none; }
}

/* ── Status badges ──────────────────────────────────────────── */
.task-status-badge {
    font-size: 11px;
    font-family: 'JetBrains Mono', monospace;
    letter-spacing: 0.3px;
    padding: 4px 10px;
    border-radius: 4px;
}
.task-status-badge.in_progress {
    background: rgba(155,143,212,0.12);
    color: var(--status-progress);
}
.task-status-badge.pending_review {
    background: rgba(184,160,80,0.12);
    color: var(--status-review);
    animation: none;
    box-shadow: none;
}
.task-status-badge.completed {
    background: rgba(90,158,124,0.12);
    color: var(--status-done);
}
.task-status-badge.overdue {
    background: rgba(196,96,96,0.12);
    color: var(--status-overdue);
}

/* ── Filter & Search ────────────────────────────────────────── */
.filter-group label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 2px;
    color: var(--text-muted);
}
.filter-title {
    font-family: 'Jost', sans-serif;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 1px;
    color: var(--text-secondary);
}
.filter-reset-btn {
    font-family: 'Jost', sans-serif;
    font-size: 12px;
    color: var(--text-muted);
    border-color: var(--border);
}
.filter-reset-btn:hover {
    border-color: rgba(255,255,255,0.18);
    color: var(--text-secondary);
}
.chip {
    font-family: 'Jost', sans-serif;
    font-size: 13px;
    color: var(--text-secondary);
    border-color: var(--border);
}
.chip:hover {
    border-color: rgba(255,255,255,0.18);
    color: var(--text-primary);
    background: rgba(255,255,255,0.04);
}
.chip.active {
    background: rgba(123,140,222,0.15);
    border-color: rgba(123,140,222,0.35);
    color: #a0aeee;
    box-shadow: none;
}
.filter-select {
    font-family: 'Jost', sans-serif;
    font-size: 13px;
    background-color: var(--elevated);
    color: var(--text-primary);
    border-color: var(--border);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='rgba(226,228,239,0.4)' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
}
.filter-select:focus {
    border-color: rgba(123,140,222,0.45);
    box-shadow: 0 0 0 3px rgba(123,140,222,0.10);
}
.filter-select option {
    background: #1e2030;
    color: var(--text-primary);
}
.search-bar input {
    font-family: 'Jost', sans-serif;
    font-size: 14px;
    background: var(--elevated);
    border-color: var(--border);
    color: var(--text-primary);
}
.search-bar input:focus {
    border-color: rgba(123,140,222,0.45);
    box-shadow: 0 0 0 3px rgba(123,140,222,0.10);
}

/* ── Priority dots ──────────────────────────────────────────── */
.task-priority.high {
    background: var(--status-overdue);
    box-shadow: none;
    animation: none;
}
.task-priority.medium {
    background: var(--status-hold);
    box-shadow: none;
}
.task-priority.low {
    background: rgba(255,255,255,0.20);
}

/* ── Bottom nav ─────────────────────────────────────────────── */
.bottom-nav {
    background: rgba(14,15,22,0.95);
    border-top: 1px solid var(--border);
    box-shadow: none;
}

/* ── FAB ────────────────────────────────────────────────────── */
.fab-button {
    box-shadow: 0 4px 16px rgba(0,0,0,0.5);
}

/* ── Кнопки — убираем фиолетовый градиент, ставим Slate Spectrum ── */
.btn-primary {
    background: #5a7ab0;      /* приглушённый стальной синий вместо --gradient-main */
    color: #e8eef8;
    box-shadow: none;
}
.btn-primary:hover {
    background: #6888be;
    box-shadow: none;
    transform: none;
}
.btn-primary:active {
    background: #4d6da0;
    transform: none;
}
.btn-secondary:hover {
    border-color: rgba(123, 157, 201, 0.40);
    background: rgba(123, 157, 201, 0.06);
}

/* FAB — тот же стальной синий */
.fab-button {
    background: #5a7ab0;
    box-shadow: 0 4px 16px rgba(0,0,0,0.4);
}

/* btn-icon-small hover — убираем pink */
.btn-icon-small:hover {
    border-color: rgba(204, 0, 255, 0.50);
    color: #cc00ff;
}

/* Кнопка добавления пользователя — иконка в стиле .btn-icon хедера */
#addUserBtn {
    width: 34px;
    height: 34px;
    padding: 0;
    border-radius: var(--radius-sm);
    background: transparent;
    border: 1px solid var(--border);
    color: var(--text-muted);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: border-color 0.18s, color 0.18s, background 0.18s;
}
#addUserBtn:hover {
    border-color: rgba(204, 0, 255, 0.45);
    color: #cc00ff;
    background: rgba(204, 0, 255, 0.06);
    box-shadow: none;
    transform: none;
}

/* team member hover — убираем pink */
.team-member:hover {
    border-color: rgba(123, 157, 201, 0.28);
    transform: none;
}

/* Светлая тема: убираем белый прямоугольник в page-header */
.light-theme .page-header {
    background: transparent;
    backdrop-filter: none;
    border-bottom: none;
    box-shadow: none;
}
.light-theme #addUserBtn {
    border-color: rgba(17, 17, 24, 0.14);
    color: rgba(17, 17, 24, 0.45);
}
.light-theme #addUserBtn:hover {
    border-color: rgba(90, 122, 176, 0.40);
    color: #5a7ab0;
    background: rgba(90, 122, 176, 0.06);
}
.light-theme .team-member:hover {
    border-color: rgba(90, 122, 176, 0.28);
    transform: none;
}
.light-theme .btn-primary {
    background: #5a7ab0;
    color: #ffffff;
    box-shadow: none;
}
.light-theme .btn-primary:hover {
    background: #4d6da0;
}
.light-theme .btn-secondary:hover {
    border-color: rgba(90, 122, 176, 0.35);
    background: rgba(90, 122, 176, 0.06);
}

/* ── Modal ──────────────────────────────────────────────────── */
.modal-header h2 {
    font-family: 'Jost', sans-serif;
    font-weight: 600;
    font-size: 18px;
    background: none;
    -webkit-text-fill-color: var(--text-primary);
    color: var(--text-primary);
}
.modal-subtitle {
    font-family: 'Jost', sans-serif;
    font-size: 13px;
    color: var(--text-muted);
}
.modal-content {
    background: #1a1c26;
    border-color: var(--border);
}

/* ── Settings ───────────────────────────────────────────────── */
.setting-item {
    background: var(--elevated);
    border-color: var(--border);
}

/* ── Убираем dangerPulse с индикатора ───────────────────────── */
@keyframes dangerPulse {
    0%, 100% { opacity: 1; }
}

/* ── Page title ─────────────────────────────────────────────── */
.page-title {
    font-family: 'Jost', sans-serif;
    font-weight: 600;
    background: none;
    -webkit-text-fill-color: var(--text-primary);
    color: var(--text-primary);
}

/* ── Scrollbar ──────────────────────────────────────────────── */
::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
    background: rgba(255,255,255,0.10);
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: rgba(255,255,255,0.18);
}

/* ══════════════════════════════════════════
   СВЕТЛАЯ ТЕМА
   ══════════════════════════════════════════ */
.light-theme {
    --void:    #f4f4f8;
    --space:   #e9e9ee;   /* чуть темнее — не ядерный белый */
    --dark:    #e2e2e8;
    --surface: #f0f0f5;
    --elevated:#ebebf0;
    --card:    #f3f3f8;   /* off-white вместо чистого белого */
    --border:  rgba(17,17,24,0.09);
    --glass-border: rgba(17,17,24,0.07);
    --glass:   rgba(255,255,255,0.92);

    --neon-pink:    #6b7cce;
    --neon-cyan:    #4a8ec4;
    --neon-blue:    #5b7cce;

    --status-progress: #cc00ff;
    --status-review:   #0099ff;
    --status-done:     #00ff55;
    --status-overdue:  #ff0000;
    --status-hold:     #ffdd00;

    --text-primary:   #111118;
    --text-secondary: rgba(17,17,24,0.65);
    --text-muted:     rgba(17,17,24,0.42);
}

.light-theme body { background: var(--space); }
.light-theme body::before { display: none; }
.light-theme body::after  { display: none; }

/* Карточки в светлой */
.light-theme .task-card {
    background: #f3f3f8;
    border-color: rgba(17,17,24,0.08);
    box-shadow: 0 1px 3px rgba(17,17,24,0.05);
}
.light-theme .task-card:hover {
    background: #ededf3;
    border-color: rgba(17,17,24,0.14);
    box-shadow: 0 3px 12px rgba(17,17,24,0.08);
}

/* Хедер в светлой */
.light-theme .app-header {
    background: rgba(248,248,251,0.94);
    border-bottom: 1px solid rgba(17,17,24,0.09);
}
.light-theme .app-title {
    background: linear-gradient(135deg, #111118 0%, rgba(17,17,24,0.55) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Канбан в светлой — те же тонкие цветные линии */
.light-theme .kanban-section {
    background: #f3f3f8;
    box-shadow: 0 1px 3px rgba(17,17,24,0.04);
}
.light-theme .kanban-section-header h3 {
    text-shadow: none !important;
    animation: none !important;
}
.light-theme .kanban-section[data-status="in_progress"] { border-color: rgba(122,110,192,0.20); }
.light-theme .kanban-section[data-status="on_hold"]     { border-color: rgba(168,104,48,0.20); }
.light-theme .kanban-section[data-status="overdue"]     { border-color: rgba(176,72,72,0.22); }
.light-theme .kanban-section[data-status="pending_review"] { border-color: rgba(74,142,196,0.20); }
.light-theme .kanban-section[data-status="completed"]   { border-color: rgba(58,138,100,0.20); }

.light-theme .kanban-section[data-status="in_progress"] .task-count.has-items {
    color: var(--status-progress); background: rgba(122,110,192,0.10); box-shadow: none;
}
.light-theme .kanban-section[data-status="on_hold"] .task-count.has-items {
    color: var(--status-hold); background: rgba(168,104,48,0.10); box-shadow: none;
}
.light-theme .kanban-section[data-status="overdue"] .task-count.has-items {
    color: var(--status-overdue); background: rgba(176,72,72,0.10); box-shadow: none; animation: none;
}
.light-theme .kanban-section[data-status="pending_review"] .task-count.has-items {
    color: #4a8ec4; background: rgba(74,142,196,0.10); box-shadow: none;
}
.light-theme .kanban-section[data-status="completed"] .task-count.has-items {
    color: var(--status-done); background: rgba(58,138,100,0.10); box-shadow: none;
}

/* Прочее в светлой */
.light-theme .menu-item { color: rgba(17,17,24,0.72); }
.light-theme .menu-item:hover { color: #111118; background: rgba(17,17,24,0.04); }
.light-theme .chip { color: rgba(17,17,24,0.70); border-color: rgba(17,17,24,0.11); }
.light-theme .chip.active {
    background: rgba(107,124,206,0.12);
    border-color: rgba(107,124,206,0.30);
    color: #5a6cbe;
}
.light-theme .filter-group label { color: rgba(17,17,24,0.42); }
.light-theme .filter-title       { color: rgba(17,17,24,0.62); }
.light-theme .filter-reset-btn   { color: rgba(17,17,24,0.50); border-color: rgba(17,17,24,0.12); }
.light-theme .search-bar input   { background: #ebebf0; border-color: rgba(17,17,24,0.11); color: #111118; }
.light-theme .filter-select      { background-color: #ebebf0; border-color: rgba(17,17,24,0.11); color: #111118; }
.light-theme .filter-select option, .light-theme select option { background: #f3f3f8; color: #111118; }
.light-theme .badge         { background: #e4e4ea; color: rgba(17,17,24,0.70); border-color: rgba(17,17,24,0.09); }
.light-theme .setting-item  { background: #f3f3f8; border-color: rgba(17,17,24,0.08); }
.light-theme .modal-header h2 { color: #111118; -webkit-text-fill-color: #111118; background: none; }
.light-theme ::placeholder    { color: rgba(17,17,24,0.35); }
.light-theme .task-card-title       { color: #111118; }
.light-theme .task-card-description { color: rgba(17,17,24,0.60); }
.light-theme .task-card-footer      { border-top-color: rgba(17,17,24,0.07); }
.light-theme .task-deadline         { color: rgba(17,17,24,0.50); background: rgba(17,17,24,0.04); }
.light-theme .task-deadline.overdue { color: var(--status-overdue); background: rgba(176,72,72,0.09); animation: none; }
.light-theme .bottom-nav    { background: rgba(248,248,251,0.96); border-top-color: rgba(17,17,24,0.09); }
.light-theme .kanban-section-empty  { color: rgba(17,17,24,0.38); }

.light-theme ::-webkit-scrollbar-thumb { background: rgba(17,17,24,0.12); }
.light-theme ::-webkit-scrollbar-thumb:hover { background: rgba(17,17,24,0.22); }

/* ══════════════════════════════════════════
   КРУПНЫЕ ШРИФТЫ — финальный апгрейд
   ══════════════════════════════════════════ */

html { font-size: 16px; }   /* базовый размер */

.task-card-title        { font-size: 15px; }
.task-card-description  { font-size: 13px; }
.task-assignee span     { font-size: 13px; }
.task-deadline          { font-size: 12px; }
.task-status-badge      { font-size: 11px; }
.task-count             { font-size: 12px; }

.kanban-section-header h3 { font-size: 11px;  letter-spacing: 2.5px; }

.menu-item              { font-size: 16px; }
.chip                   { font-size: 13px;  padding: 8px 17px; }
.filter-group label     { font-size: 10px;  letter-spacing: 2px; }
.filter-title           { font-size: 12px; }
.filter-reset-btn       { font-size: 12px; }
.filter-select          { font-size: 13px; }
.search-bar input       { font-size: 14px; }

.action-btn-title       { font-size: 15px; }
.action-btn-desc        { font-size: 12px; }

.modal-header h2        { font-size: 18px; }
.modal-subtitle         { font-size: 13px; }

.app-title              { font-size: 17px; }

/* ══════════════════════════════════════════
   ТИПОГРАФИЧЕСКАЯ ИЕРАРХИЯ
   ══════════════════════════════════════════ */

/* Типографическая иерархия: заголовок → название → описание, всё большое */
/* Заголовки канбан-секций */
.kanban-section-header h3 {
    font-size: 16px;
    letter-spacing: 2px;
    font-weight: 500;
}

/* Названия задач */
.task-card-title {
    font-size: 19px;
    font-weight: 600;
    line-height: 1.3;
}

/* Описания — переопределяется блоком ЕДИНЫЙ МАСШТАБ ниже */
.task-card-description {
    font-size: 14px;
    font-weight: 300;
    line-height: 1.65;
    opacity: 0.85;
}

/* ══════════════════════════════════════════
   ADOBE COLOR — "SLATE SPECTRUM"
   Единая тональная семья: sat ~38%, lum ~60%
   Статусы + имена сотрудников из одной палитры
   ══════════════════════════════════════════ */

:root {
    --status-progress: #cc00ff;
    --status-review:   #0099ff;
    --status-done:     #00ff55;
    --status-overdue:  #ff0000;
    --status-hold:     #ffdd00;
}

.kanban-section[data-status="in_progress"]        { border-color: rgba(204,0,255,0.18); }
.kanban-section[data-status="in_progress"] .kanban-section-header h3 { color: #cc00ff; }
.kanban-section[data-status="in_progress"] .kanban-section-header::after { background: #cc00ff; opacity: 0.35; }
.kanban-section[data-status="in_progress"] .task-count.has-items { color: #cc00ff; background: rgba(204,0,255,0.10); }

.kanban-section[data-status="on_hold"]            { border-color: rgba(255,221,0,0.18); }
.kanban-section[data-status="on_hold"] .kanban-section-header h3  { color: #ffdd00; }
.kanban-section[data-status="on_hold"] .kanban-section-header::after { background: #ffdd00; opacity: 0.35; }
.kanban-section[data-status="on_hold"] .task-count.has-items { color: #ffdd00; background: rgba(255,221,0,0.10); }

.kanban-section[data-status="overdue"]            { border-color: rgba(255,0,0,0.22); }
.kanban-section[data-status="overdue"] .kanban-section-header h3  { color: #ff0000; animation: none; }
.kanban-section[data-status="overdue"] .kanban-section-header::after { background: #ff0000; opacity: 0.40; }
.kanban-section[data-status="overdue"] .task-count.has-items { color: #ff0000; background: rgba(255,0,0,0.12); animation: none; }

.kanban-section[data-status="pending_review"]     { border-color: rgba(0,153,255,0.18); }
.kanban-section[data-status="pending_review"] .kanban-section-header h3 { color: #0099ff; animation: none; }
.kanban-section[data-status="pending_review"] .kanban-section-header::after { background: #0099ff; opacity: 0.35; }
.kanban-section[data-status="pending_review"] .task-count.has-items { color: #0099ff; background: rgba(0,153,255,0.10); }

.kanban-section[data-status="completed"]          { border-color: rgba(0,255,85,0.18); }
.kanban-section[data-status="completed"] .kanban-section-header h3  { color: #00ff55; }
.kanban-section[data-status="completed"] .kanban-section-header::after { background: #00ff55; opacity: 0.35; }
.kanban-section[data-status="completed"] .task-count.has-items { color: #00ff55; background: rgba(0,255,85,0.10); }

.task-status-badge.in_progress    { background: rgba(204,0,255,0.12); color: #cc00ff; }
.task-status-badge.pending_review { background: rgba(0,153,255,0.12); color: #0099ff; animation: none; box-shadow: none; }
.task-status-badge.completed      { background: rgba(0,255,85,0.12); color: #00ff55; }
.task-status-badge.overdue        { background: rgba(255,0,0,0.12); color: #ff0000; }
.task-status-badge.on_hold        { background: rgba(255,221,0,0.12); color: #ffdd00; }

.task-deadline.soon   { color: #ffdd00; background: rgba(255,221,0,0.10); }
.task-deadline.overdue{ color: #ff0000; background: rgba(255,0,0,0.12); animation: none; }

.task-priority.high   { background: #ff0000; box-shadow: none; animation: none; }
.task-priority.medium { background: #ffdd00; box-shadow: none; }

.light-theme {
    --status-progress: #cc00ff;
    --status-review:   #0099ff;
    --status-done:     #00ff55;
    --status-overdue:  #ff0000;
    --status-hold:     #ffdd00;
}
.light-theme .kanban-section[data-status="in_progress"]    { border-color: rgba(90,125,184,0.22); }
.light-theme .kanban-section[data-status="on_hold"]        { border-color: rgba(168,96,72,0.22); }
.light-theme .kanban-section[data-status="overdue"]        { border-color: rgba(176,72,88,0.24); }
.light-theme .kanban-section[data-status="pending_review"] { border-color: rgba(58,138,104,0.22); }
.light-theme .kanban-section[data-status="completed"]      { border-color: rgba(58,138,104,0.22); }
.light-theme .kanban-section[data-status="in_progress"] .task-count.has-items    { color: #cc00ff; background: rgba(204,0,255,0.10); box-shadow: none; }
.light-theme .kanban-section[data-status="on_hold"] .task-count.has-items        { color: #ffdd00; background: rgba(255,221,0,0.10); box-shadow: none; }
.light-theme .kanban-section[data-status="overdue"] .task-count.has-items        { color: #ff0000; background: rgba(255,0,0,0.10); box-shadow: none; animation: none; }
.light-theme .kanban-section[data-status="pending_review"] .task-count.has-items { color: #0099ff; background: rgba(0,153,255,0.10); box-shadow: none; }
.light-theme .kanban-section[data-status="completed"] .task-count.has-items      { color: #00ff55; background: rgba(0,255,85,0.10); box-shadow: none; }

/* ══════════════════════════════════════════
   МОДАЛЬНОЕ ОКНО ЗАДАЧИ — крупная типографика
   ══════════════════════════════════════════ */

/* Заголовок задачи в модале */
.modal-header h2,
#taskTitle {
    font-size: 21px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: -0.2px;
}

/* Лейблы секций — мелкие, монопространственные */
.task-detail-section label {
    font-size: 9px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 500;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 10px;
}

/* Описание задачи в модале */
.task-detail-section p,
#taskDescription {
    font-size: 15px;
    font-weight: 300;
    line-height: 1.80;
    color: var(--text-secondary);
    font-family: 'Jost', sans-serif;
}

/* Само поле описания */
#taskDescription {
    font-size: 16px;
    line-height: 1.85;
    color: var(--text-primary);
    opacity: 0.88;
}

/* ══════════════════════════════════════════
   ЕДИНЫЙ МАСШТАБ — все экраны webapp
   Точка отсчёта: канбан-доска
   ══════════════════════════════════════════ */

/* ── Описание в канбан-карточке: контрастный цвет ── */
.task-card-description {
    font-size: 16px;
    font-weight: 300;
    line-height: 1.65;
    color: rgba(196, 210, 235, 0.82);
    opacity: 1;
}

.light-theme .task-card-description {
    color: rgba(17, 20, 36, 0.68);
    opacity: 1;
}

/* ── Общие заголовки страниц ─────────────────────────────────── */
.page-section h2,
.page-header h2 {
    font-family: 'Jost', sans-serif;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.5px;
    color: var(--text-primary);
    background: none;
    -webkit-text-fill-color: var(--text-primary);
}
.light-theme .page-section h2,
.light-theme .page-header h2 {
    color: #111118;
    -webkit-text-fill-color: #111118;
}

/* ── Команда ─────────────────────────────────────────────────── */
.team-member-name {
    font-family: 'Jost', sans-serif;
    font-size: 16px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.3;
}
.team-member-details {
    font-family: 'Jost', sans-serif;
    font-size: 13px;
    color: rgba(196, 210, 235, 0.78);
    line-height: 1.5;
}
.light-theme .team-member-details {
    color: rgba(17, 20, 36, 0.62);
}
.role-badge {
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    letter-spacing: 1.5px;
}

/* ── Статистика ──────────────────────────────────────────────── */
.stat-value {
    font-family: 'Jost', sans-serif;
    font-size: 33px;
    font-weight: 600;
    letter-spacing: -1px;
}
.stat-label {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: rgba(196, 210, 235, 0.60);
}
.light-theme .stat-label {
    color: rgba(17, 20, 36, 0.50);
}

/* ── Настройки ───────────────────────────────────────────────── */
.setting-item span:not(.setting-hint):not(.slider) {
    font-family: 'Jost', sans-serif;
    font-size: 15px;
    font-weight: 500;
    color: var(--text-primary);
}
.setting-hint {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    color: rgba(196, 210, 235, 0.58);
}
.light-theme .setting-hint {
    color: rgba(17, 20, 36, 0.48);
}

/* ── AI чат ──────────────────────────────────────────────────── */
.ai-chat-header h2 {
    font-family: 'Jost', sans-serif;
    font-size: 16px;
    font-weight: 600;
    background: none;
    -webkit-text-fill-color: var(--text-primary);
    color: var(--text-primary);
    letter-spacing: 0.5px;
}
.light-theme .ai-chat-header h2 {
    color: #111118;
    -webkit-text-fill-color: #111118;
}

.ai-welcome-message p {
    font-family: 'Jost', sans-serif;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.75;
    color: rgba(196, 210, 235, 0.78);
}
.light-theme .ai-welcome-message p {
    color: rgba(17, 20, 36, 0.60);
}

.ai-message-content {
    font-family: 'Jost', sans-serif;
    font-size: 15px;
    line-height: 1.70;
}

.ai-message-input {
    font-family: 'Jost', sans-serif;
    font-size: 15px;
    line-height: 1.6;
}

/* ── Список задач (list view) ────────────────────────────────── */
.task-list-item {
    font-family: 'Jost', sans-serif;
}
.task-list-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--text-primary);
    line-height: 1.3;
}
.task-list-meta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    color: rgba(196, 210, 235, 0.60);
    line-height: 1.5;
    margin-top: 4px;
}
.light-theme .task-list-meta {
    color: rgba(17, 20, 36, 0.50);
}

/* ── Модал: подзадачи и история ──────────────────────────────── */
.subtask-title {
    font-family: 'Jost', sans-serif;
    font-size: 14px;
    font-weight: 400;
    color: var(--text-primary);
    line-height: 1.4;
}
.subtask-check {
    font-size: 14px;
}
.history-item {
    font-family: 'Jost', sans-serif;
    font-size: 13px;
    color: rgba(196, 210, 235, 0.72);
    line-height: 1.5;
}
.light-theme .history-item {
    color: rgba(17, 20, 36, 0.60);
}

/* ── Action кнопки (действия исполнителя) ───────────────────── */
.action-btn-title {
    font-family: 'Jost', sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: var(--text-primary);
}
.action-btn-desc {
    font-family: 'Jost', sans-serif;
    font-size: 13px;
    color: rgba(196, 210, 235, 0.70);
}
.light-theme .action-btn-desc {
    color: rgba(17, 20, 36, 0.58);
}

/* ── Пустое состояние ────────────────────────────────────────── */
.empty-state h3 {
    font-family: 'Jost', sans-serif;
    font-size: 17px;
    font-weight: 600;
}
.empty-state p {
    font-family: 'Jost', sans-serif;
    font-size: 14px;
    color: rgba(196, 210, 235, 0.58);
}
.kanban-section-empty {
    font-family: 'Jost', sans-serif;
    font-size: 13px;
    color: rgba(196, 210, 235, 0.38);
}
