/* ═══════════════════════════════════════════════════════════════════════════
   Inventory Cashflow AI — większy kontrast i czytelność (oba motywy)
   Ostatnia warstwa nad styles.css i polish.css (łatwa do wycofania: usuń <link>).
   Cel: tekst ≥ 7:1 (WCAG AAA) dla treści, ≥ 4.5:1 dla podpisów i linków,
   wyraźne obramowania pól, kart i tabel, czytelne ikony i zakładki.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Jasny motyw ───────────────────────────────────────────────────────────── */
:root {
  --surface-0: #e9edf3;          /* tło strony — wyraźnie ciemniejsze od kart */
  --surface-1: #ffffff;
  --surface-2: #f1f4f8;
  --line: rgba(15, 23, 42, 0.14);
  --line-strong: rgba(15, 23, 42, 0.26);
  --text-1: #0b1220;             /* 18.9:1 na białym */
  --text-2: #1e293b;             /* 14.6:1 */
  --text-3: #475569;             /*  7.6:1 */
  --link: #1d4ed8;               /*  6.7:1 */
  --ring: rgba(29, 78, 216, 0.35);
  --row-hover: rgba(29, 78, 216, 0.06);
  --card-shadow: 0 1px 2px rgba(15, 23, 42, 0.08), 0 8px 22px -14px rgba(15, 23, 42, 0.28);
  --gray-500: #475569;           /* dawne szare podpisy (4.8:1 → 7.6:1) */
  --gray-600: #334155;
  --gray-200: #d5dce6;           /* linie w starszych komponentach */
  --primary: #1d4ed8;
  --primary-hover: #1e40af;
  --primary-light: #dbe7ff;
  --success: #047857;
  --danger: #b91c1c;
  --warning: #b45309;
  --info: #0369a1;
}

/* ── Ciemny motyw ──────────────────────────────────────────────────────────── */
[data-bs-theme="dark"] {
  --surface-0: #060a12;
  --surface-1: #121a2b;          /* karty wyraźnie jaśniejsze od tła */
  --surface-2: #1a2438;
  --line: rgba(148, 163, 184, 0.22);
  --line-strong: rgba(148, 163, 184, 0.38);
  --text-1: #f8fafc;             /* 17.4:1 na karcie */
  --text-2: #e2e8f0;             /* 14.6:1 */
  --text-3: #b6c2d2;             /*  9.6:1 */
  --link: #93c5fd;               /*  9.5:1 */
  --ring: rgba(147, 197, 253, 0.45);
  --row-hover: rgba(147, 197, 253, 0.08);
  --card-shadow: 0 1px 2px rgba(0, 0, 0, 0.5), 0 10px 28px -16px rgba(0, 0, 0, 0.8);
  --gray-500: #b6c2d2;
  --gray-600: #d4dce7;
  --gray-200: #2c3a52;
  --primary: #60a5fa;            /* przyciski i akcenty: jaśniejszy niebieski */
  --primary-hover: #93c5fd;
  --primary-light: rgba(96, 165, 250, 0.18);
  --success: #4ade80;
  --danger: #fb7185;
  --warning: #fbbf24;
  --info: #38bdf8;
  --bs-body-color: var(--text-2);
  --bs-secondary-color: var(--text-3);
  --bs-border-color: var(--line-strong);
}
[data-bs-theme="dark"] body { background: var(--surface-0); }

/* ── Tekst, linki, podpisy ─────────────────────────────────────────────────── */
body { color: var(--text-2); }
.text-muted, .text-secondary, .form-text, .small.text-muted { color: var(--text-3) !important; }
[data-bs-theme="dark"] .text-muted, [data-bs-theme="dark"] .text-secondary, [data-bs-theme="dark"] .text-body-secondary { color: var(--text-3) !important; }
.kpi-hint, .hint, .chart-empty { color: var(--text-3); }   /* było gray-400: 2.6:1 na białym */
[data-bs-theme="dark"] .forecast-tabs .nav-link, [data-bs-theme="dark"] .btn-close-forecast { color: var(--text-3); }
.text-body-secondary { color: var(--text-3) !important; }
.kpi-hint, .hint, .chart-empty { color: var(--text-3); }   /* było gray-400: 2.6:1 na białym */
[data-bs-theme="dark"] .forecast-tabs .nav-link, [data-bs-theme="dark"] .btn-close-forecast { color: var(--text-3); }
a { color: var(--link); }
a:hover { color: var(--text-1); }
.page-header .subtitle { color: var(--text-3); font-size: 0.95rem; }
.page-header .eyebrow { color: var(--link); }
.form-label, label.form-label { color: var(--text-1); }
.form-label.small, .form-label.small.mb-0 { font-size: 0.85rem !important; }
.card-body > .text-muted.small:first-child { font-size: 0.74rem !important; color: var(--text-3) !important; }

/* ── Karty i nagłówki stron ────────────────────────────────────────────────── */
.card, .page-header { border: 1px solid var(--line-strong) !important; box-shadow: var(--card-shadow) !important; }
.page-header .filter-bar, .filter-bar, .card .card { border-color: var(--line-strong) !important; }

/* ── Nagłówek aplikacji i zakładki ─────────────────────────────────────────── */
.hdr { border-bottom: 1px solid var(--line-strong); }
.hdr-nav, .hdr-tools { border-color: var(--line-strong) !important; }
.hdr-sep { background: var(--line-strong); }
.hdr-brand-name { color: var(--text-1); }
.hdr-icon { color: var(--text-2); }
.hdr-icon:hover, .hdr-icon.active { color: var(--primary); background: var(--primary-light); }
.hdr-tab { color: var(--text-2); }
.hdr-tab i { opacity: 1; }
.hdr-tab:hover { color: var(--primary); }
.hdr-tab:hover::after { background: var(--line-strong); }
.hdr-tab.active { color: var(--primary); }
.hdr-btn { color: var(--text-1); background: var(--surface-2); border-color: var(--line-strong); }
[data-bs-theme="dark"] .hdr { background: rgba(6, 10, 18, 0.94); }
[data-bs-theme="dark"] .hdr-btn { background: var(--surface-2); color: var(--text-1); border-color: var(--line-strong); }
[data-bs-theme="dark"] .hdr-btn-primary,
.hdr-btn-primary { background: var(--primary); border-color: var(--primary); color: #fff; }
[data-bs-theme="dark"] .hdr-btn-primary { color: #06101f; }

/* ── Tabele ────────────────────────────────────────────────────────────────── */
.table thead th, .table > thead > tr > th {
  color: var(--text-2) !important; font-size: 0.74rem; font-weight: 700;
  border-bottom: 1px solid var(--line-strong) !important;
}
.table tbody td { color: var(--text-2); border-bottom-color: var(--line) !important; }
.table td a { color: var(--link); }
.table tbody tr:hover, .table tbody tr:hover > td { background: var(--row-hover) !important; }

/* ── Formularze ────────────────────────────────────────────────────────────── */
.form-control, .form-select { border-color: var(--line-strong); color: var(--text-1); }
.form-control::placeholder { color: var(--text-3); opacity: 1; }
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: var(--primary); box-shadow: 0 0 0 4px var(--ring); }
.form-control:disabled, .form-select:disabled { background: var(--surface-2); color: var(--text-3); }
.form-check-input { border-color: var(--line-strong); }
.input-group-text { color: var(--text-2); border-color: var(--line-strong); }
[data-bs-theme="dark"] .form-control, [data-bs-theme="dark"] .form-select { background-color: #0a1120; border-color: var(--line-strong); }
[data-bs-theme="dark"] .form-control:focus, [data-bs-theme="dark"] .form-select:focus { background-color: #0a1120; }
[data-bs-theme="dark"] .form-select { --bs-form-select-bg-img: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23e2e8f0' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e"); }

/* ── Przyciski ─────────────────────────────────────────────────────────────── */
.btn-primary { --bs-btn-bg: var(--primary); --bs-btn-border-color: var(--primary); --bs-btn-hover-bg: var(--primary-hover); --bs-btn-hover-border-color: var(--primary-hover); }
.btn-outline-primary { --bs-btn-color: var(--primary); --bs-btn-border-color: var(--primary); --bs-btn-hover-bg: var(--primary); --bs-btn-hover-border-color: var(--primary); }
.btn-outline-secondary { color: var(--text-1); border-color: var(--line-strong); }
.btn-outline-danger { --bs-btn-color: var(--danger); --bs-btn-border-color: var(--danger); }
.btn-outline-warning { --bs-btn-color: #92400e; --bs-btn-border-color: #d97706; --bs-btn-hover-bg: #d97706; --bs-btn-hover-border-color: #d97706; --bs-btn-hover-color: #fff; }
.btn-outline-success { --bs-btn-color: #047857; --bs-btn-border-color: #059669; --bs-btn-hover-bg: #047857; --bs-btn-hover-color: #fff; }
.btn-outline-info { --bs-btn-color: #075985; --bs-btn-border-color: #0284c7; --bs-btn-hover-bg: #0369a1; --bs-btn-hover-color: #fff; }
.btn-outline-danger { --bs-btn-hover-bg: var(--danger); --bs-btn-hover-border-color: var(--danger); --bs-btn-hover-color: #fff; }
[data-bs-theme="dark"] .btn-outline-warning { --bs-btn-color: #fcd34d; --bs-btn-border-color: #f59e0b; --bs-btn-hover-bg: #fbbf24; --bs-btn-hover-color: #1c1003; }
[data-bs-theme="dark"] .btn-outline-success { --bs-btn-color: #86efac; --bs-btn-border-color: #22c55e; --bs-btn-hover-bg: #4ade80; --bs-btn-hover-color: #052e16; }
[data-bs-theme="dark"] .btn-outline-info { --bs-btn-color: #7dd3fc; --bs-btn-border-color: #0ea5e9; --bs-btn-hover-bg: #38bdf8; --bs-btn-hover-color: #082f49; }
[data-bs-theme="dark"] .btn-outline-danger { --bs-btn-hover-color: #2a0610; }
[data-bs-theme="dark"] .btn-primary { --bs-btn-color: #06101f; --bs-btn-hover-color: #06101f; --bs-btn-active-color: #06101f; --bs-btn-active-bg: #93c5fd; }
[data-bs-theme="dark"] .btn-outline-primary { --bs-btn-hover-color: #06101f; }

/* ── Plakietki statusów — mocniejszy kolor tekstu ──────────────────────────── */
.badge.bg-success { color: #065f46 !important; background: rgba(16, 185, 129, 0.2) !important; }
.badge.bg-danger { color: #991b1b !important; background: rgba(239, 68, 68, 0.18) !important; }
.badge.bg-warning, .badge.text-bg-warning { color: #78350f !important; background: rgba(245, 158, 11, 0.26) !important; }
.badge.bg-primary { color: #1e3a8a !important; background: rgba(37, 99, 235, 0.16) !important; }
.badge.bg-secondary { color: #334155 !important; background: rgba(100, 116, 139, 0.2) !important; }
.badge.text-bg-light { color: var(--text-1) !important; background: var(--surface-2) !important; border-color: var(--line-strong) !important; }
[data-bs-theme="dark"] .badge.bg-success { color: #86efac !important; background: rgba(34, 197, 94, 0.2) !important; }
[data-bs-theme="dark"] .badge.bg-danger { color: #fda4af !important; background: rgba(244, 63, 94, 0.22) !important; }
[data-bs-theme="dark"] .badge.bg-warning, [data-bs-theme="dark"] .badge.text-bg-warning { color: #fde68a !important; background: rgba(245, 158, 11, 0.24) !important; }
[data-bs-theme="dark"] .badge.bg-primary { color: #bfdbfe !important; background: rgba(96, 165, 250, 0.22) !important; }
[data-bs-theme="dark"] .badge.bg-secondary { color: #e2e8f0 !important; background: rgba(148, 163, 184, 0.24) !important; }

/* ── Komunikaty ────────────────────────────────────────────────────────────── */
.alert-info { color: #0c4a6e; background: #e0f2fe; border-color: #7dd3fc; }
.alert-warning { color: #713f12; background: #fef3c7; border-color: #fcd34d; }
.alert-danger { color: #7f1d1d; background: #fee2e2; border-color: #fca5a5; }
.alert-success { color: #14532d; background: #dcfce7; border-color: #86efac; }
.alert-light { color: var(--text-1); }
[data-bs-theme="dark"] .alert-info { color: #e0f2fe; background: rgba(14, 165, 233, 0.16); border-color: rgba(56, 189, 248, 0.45); }
[data-bs-theme="dark"] .alert-warning { color: #fef3c7; background: rgba(245, 158, 11, 0.16); border-color: rgba(251, 191, 36, 0.45); }
[data-bs-theme="dark"] .alert-danger { color: #ffe4e6; background: rgba(244, 63, 94, 0.16); border-color: rgba(251, 113, 133, 0.45); }
[data-bs-theme="dark"] .alert-success { color: #dcfce7; background: rgba(34, 197, 94, 0.15); border-color: rgba(74, 222, 128, 0.45); }
[data-bs-theme="dark"] .alert-light { color: var(--text-1); background: var(--surface-2); border-color: var(--line-strong); }

/* ── Menu, okna, listy ─────────────────────────────────────────────────────── */
.dropdown-menu { border-color: var(--line-strong); }
.dropdown-item { color: var(--text-1); }
.dropdown-header { color: var(--text-3); font-weight: 600; }
.list-group-item { color: var(--text-2); border-color: var(--line); }
.progress { background: var(--surface-2); outline: 1px solid var(--line); }
hr { border-color: var(--line-strong); }

/* ── Fokus z klawiatury — zawsze widoczny ──────────────────────────────────── */
:focus-visible { outline: 3px solid var(--primary); outline-offset: 2px; }
.btn:focus-visible { box-shadow: 0 0 0 4px var(--ring); }

/* ── Strony logowania i rejestracji ────────────────────────────────────────── */
.login-header p { color: var(--text-3) !important; }
.login-card { border-color: var(--line-strong) !important; }
[data-bs-theme="dark"] .login-card { background: var(--surface-1) !important; }
[data-bs-theme="dark"] .login-header p { color: var(--text-3) !important; }
[data-bs-theme="dark"] .login-header h1 { color: var(--text-1) !important; }
.auth-links .sep { color: var(--text-3); }

/* ── Preferencja systemowa „więcej kontrastu” ──────────────────────────────── */
@media (prefers-contrast: more) {
  :root { --line: rgba(15, 23, 42, 0.3); --line-strong: rgba(15, 23, 42, 0.5); --text-3: #334155; }
  [data-bs-theme="dark"] { --line: rgba(226, 232, 240, 0.35); --line-strong: rgba(226, 232, 240, 0.55); --text-3: #e2e8f0; }
}
