/* ---------- base.css ---------- */

/* Декларация порядка слоёв каскада. Файлы пока не обёрнуты в @layer
   (они unlayered и получают высший приоритет), но декларация задаёт
   порядок на будущее: reset → tokens → layout → components →
   utilities → a11y → overrides. Это позволяет постепенно мигрировать
   CSS-модули, не ломая существующий каскад. */
@layer reset, tokens, layout, components, utilities, a11y, overrides;

/* ===== ТЁМНАЯ ТЕМА (по умолчанию) ===== */
:root {
    --bg-main: #0f172a;
    --bg-card: #1e293b;
    --accent: #00d9ff;
    --accent-hover: #00c4e8;
    --accent-text: #0f172a;
    --danger: #ff8080;
    --danger-hover: #ff6060;
    --success: #00ff9d;
    --success-hover: #00e68a;
    --warning: #fbbf24;
    --warning-hover: #f59e0b;
    --tech: #a855f7;
    --text: #f1f5f9;
    --text-muted: #94a3b8;
    --border: #334155;
    --border-light: #475569;
    --print: #ff9800;
    --excluded: #94a3b8;
    --us-color: #00ff9d;
    --bug-color: #ff4d4d;
    --tech-color: #a855f7;
    /* v8.27.1: усиленные варианты для матрицы (контраст ≥4.5:1 над .total-row) */
    --bug-color-strong: #ff8a8a;
    --tech-color-strong: #cba8ff;
    --text-muted-strong: #b0becd;
    --priority-score-color: #00d9ff;
    --effort-color: #c174f8;
    --button-bg: #2d3748;
    --button-hover: #3d4758;

    /* Семантические переменные для замены хардкод-rgba */
    --overlay-dark: rgba(0, 0, 0, 0.8);
    --overlay-subtle: rgba(255, 255, 255, 0.02);
    --overlay-faint: rgba(255, 255, 255, 0.04);
    --overlay-light: rgba(255, 255, 255, 0.05);
    --overlay-medium: rgba(255, 255, 255, 0.1);
    --row-divider: rgba(255, 255, 255, 0.08);
    --scale-item-bg: rgba(0, 0, 0, 0.25);
    --scale-item-border: rgba(255, 255, 255, 0.1);
    --code-bg: rgba(0, 0, 0, 0.2);
    --shadow-sm: rgba(0, 0, 0, 0.1);
    --shadow-md: rgba(0, 0, 0, 0.2);
    --shadow-lg: rgba(0, 0, 0, 0.3);
    --shadow-xl: rgba(0, 0, 0, 0.5);
    --modal-overlay-bg: rgba(0, 0, 0, 0.8);
    --progress-track: rgba(255, 255, 255, 0.1);
    --inset-shadow: rgba(0, 0, 0, 0.1);

    /* Акцентные полупрозрачные */
    --accent-bg-faint: rgba(0, 217, 255, 0.05);
    --accent-bg-subtle: rgba(0, 217, 255, 0.1);
    --accent-bg-light: rgba(0, 217, 255, 0.12);
    --accent-bg-medium: rgba(0, 217, 255, 0.15);
    --accent-bg-strong: rgba(0, 217, 255, 0.2);
    --accent-bg-highlight: rgba(0, 217, 255, 0.25);
    --accent-border-faint: rgba(0, 217, 255, 0.3);
    --accent-border: rgba(0, 217, 255, 0.4);
    --accent-glow: rgba(0, 217, 255, 0.6);
    --accent-spinner: rgba(0, 217, 255, 0.3);
    --accent-shadow: rgba(0, 217, 255, 0.1);

    /* Успех полупрозрачные */
    --success-bg-faint: rgba(0, 255, 157, 0.08);
    --success-bg-subtle: rgba(0, 255, 157, 0.1);
    --success-bg-light: rgba(0, 255, 157, 0.15);
    --success-border-faint: rgba(0, 255, 157, 0.3);

    /* Опасность полупрозрачные */
    --danger-bg-subtle: rgba(255, 77, 77, 0.1);
    --danger-bg-light: rgba(255, 77, 77, 0.2);
    --danger-shadow: rgba(255, 77, 77, 0.3);
    --danger-glow: rgba(255, 128, 128, 0.3);

    /* Предупреждение полупрозрачные */
    --warning-bg-subtle: rgba(251, 191, 36, 0.1);
    --warning-bg-light: rgba(251, 191, 36, 0.2);

    /* Серые полупрозрачные */
    --excluded-bg: rgba(100, 116, 139, 0.1);
    --excluded-border: rgba(100, 116, 139, 0.3);

    /* Подсветка новой задачи */
    --highlight-pulse-start: rgba(255, 255, 0, 0.6);
    --highlight-pulse-mid: rgba(255, 255, 0, 0.3);
    --highlight-glow: rgba(255, 255, 0, 0.8);

    /* Лучшее значение в таблице */
    --best-value-bg: rgba(11, 98, 22, 0.875);
}

/* ===== СВЕТЛАЯ ТЕМА — песочная палитра (v8.14) =====
   Тёплый «sandy»-стиль вместо холодного офисного белого.
   Все hex-токены рассчитаны на WCAG 2.1 AA:
     - text/bg-main 12.04:1, text/bg-card 14.12:1
     - accent #03568a / bg-main 6.14:1 (с запасом на overlay-light eff)
     - accent-text #fdfaf2 / accent 7.45:1
     - danger/success/warning/tech на bg-main ≥ 4.5:1
     - border-light/bg-main 3.38:1 (UI components)
   Декоративный --border (1.54:1) применяется только для
   тонких разделительных линий, что допускается WCAG. */
[data-theme="light"] {
    --bg-main: #ede4ce;          /* тёплый песочный (было #f1f5f9) */
    --bg-card: #faf6ec;          /* кремовый, не чистый белый (было #ffffff) */
    --accent: #03568a;           /* затемнено для AA на песочных подложках
                                    (включая overlay-light effective #e5dcc7) */
    --accent-hover: #024976;
    --accent-text: #fdfaf2;      /* кремово-белый, не #ffffff */
    --danger: #b91c1c;
    --danger-hover: #991b1b;
    --success: #0d6258;          /* затемнено для AA на песке */
    --success-hover: #0a4f47;
    --warning: #955100;          /* затемнено для AA */
    --warning-hover: #7a4200;
    --tech: #7c3aed;
    --text: #2d2419;             /* тёмный шоколад (было #0f172a) */
    --text-muted: #6b5b47;       /* серо-коричневый (было #475569) */
    --border: #c9b896;           /* песочный border (декоративный) */
    --border-light: #8a7858;     /* medium tan для focus/active (≥3:1) */
    --print: #9a3408;            /* затемнено для AA */
    --excluded: #6b5b47;
    --us-color: #0d6258;
    --bug-color: #b91c1c;
    --tech-color: #7c3aed;
    /* v8.27.1: усиленные варианты для матрицы (контраст ≥4.5:1 над .total-row #ddd1b3) */
    --bug-color-strong: #8b0000;
    --tech-color-strong: #5b21b6;
    --text-muted-strong: #54462f;
    --priority-score-color: #03568a;
    --effort-color: #7c3aed;
    --button-bg: #e7dcc4;        /* бежевый (было #e2e8f0) */
    --button-hover: #d9cdb6;     /* tan hover */

    /* Семантические переменные для светлой темы. Базируются на тёплом
       коричневом тоне rgba(45, 36, 25, X), чтобы подтоны overlays/shadows
       сочетались с песочным фоном, а не с холодным графитовым. */
    --overlay-dark: rgba(45, 36, 25, 0.6);
    --overlay-subtle: rgba(45, 36, 25, 0.02);
    --overlay-faint: rgba(45, 36, 25, 0.03);
    --overlay-light: rgba(45, 36, 25, 0.04);
    --overlay-medium: rgba(45, 36, 25, 0.06);
    --row-divider: rgba(45, 36, 25, 0.06);
    --scale-item-bg: rgba(45, 36, 25, 0.04);
    --scale-item-border: rgba(45, 36, 25, 0.1);
    --code-bg: rgba(45, 36, 25, 0.06);
    --shadow-sm: rgba(45, 36, 25, 0.06);
    --shadow-md: rgba(45, 36, 25, 0.1);
    --shadow-lg: rgba(45, 36, 25, 0.15);
    --shadow-xl: rgba(45, 36, 25, 0.2);
    --modal-overlay-bg: rgba(45, 36, 25, 0.6);
    --progress-track: rgba(45, 36, 25, 0.1);
    --inset-shadow: rgba(45, 36, 25, 0.06);

    /* Акцентные полупрозрачные. Холодные #f0f9ff/#e0f2fe выглядели «грязными»
       на песке — заменены на нейтральные песочные fill'ы того же светлого
       уровня (контраст к --text сохраняется ≥ 11:1). */
    --accent-bg-faint: #f3eedb;
    --accent-bg-subtle: #ebe2c8;
    --accent-bg-light: #ddd1b3;
    --accent-bg-medium: #c8b894;
    --accent-bg-strong: rgba(3, 86, 138, 0.15);
    --accent-bg-highlight: rgba(3, 86, 138, 0.15);
    --accent-border-faint: rgba(3, 86, 138, 0.3);
    --accent-border: rgba(3, 86, 138, 0.4);
    --accent-glow: rgba(3, 86, 138, 0.4);
    --accent-spinner: rgba(3, 86, 138, 0.3);
    --accent-shadow: rgba(3, 86, 138, 0.1);

    /* Успех полупрозрачные */
    --success-bg-faint: rgba(13, 98, 88, 0.08);
    --success-bg-subtle: rgba(13, 98, 88, 0.1);
    --success-bg-light: rgba(13, 98, 88, 0.15);
    --success-border-faint: rgba(13, 98, 88, 0.3);

    /* Опасность полупрозрачные */
    --danger-bg-subtle: rgba(185, 28, 28, 0.1);
    --danger-bg-light: rgba(185, 28, 28, 0.15);
    --danger-shadow: rgba(185, 28, 28, 0.25);
    --danger-glow: rgba(185, 28, 28, 0.2);

    /* Предупреждение полупрозрачные */
    --warning-bg-subtle: rgba(149, 81, 0, 0.1);
    --warning-bg-light: rgba(149, 81, 0, 0.15);

    /* Серые полупрозрачные (теплее, согласованы с песочным фоном) */
    --excluded-bg: rgba(107, 91, 71, 0.1);
    --excluded-border: rgba(107, 91, 71, 0.3);

    /* Подсветка новой задачи — медово-янтарная */
    --highlight-pulse-start: rgba(234, 179, 8, 0.5);
    --highlight-pulse-mid: rgba(234, 179, 8, 0.25);
    --highlight-glow: rgba(234, 179, 8, 0.6);

    /* Лучшее значение в таблице */
    --best-value-bg: rgba(13, 98, 88, 0.2);
}

body {
    background-color: var(--bg-main);
    color: var(--text);
    font-family: 'Inter', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    margin: 0;
    padding: 8px;
    font-size: 0.75rem;
    min-height: 100vh;
    overflow-x: hidden;
}