/* ==========================================================================
   Baraka daftari — uslublar
   Ranglar logodan olingan: ko'k (asosiy), to'q ko'k (navbar), sariq (urg'u), yashil (barg).
   Barcha ranglar CSS o'zgaruvchilarida — yorug' va qorong'i temada alohida qiymatlar.
   Matn/fon kontrasti WCAG AA (kamida 4.5:1) talabiga mos tanlangan.
   ========================================================================== */

/* ---------- Yorug' tema ---------- */
:root,
[data-bs-theme="light"] {
  --brand: #0a5bc4;            /* logodagi asosiy ko'k */
  --brand-rgb: 10, 91, 196;
  --brand-hover: #084a9f;
  --brand-navy: #022a6e;       /* logodagi to'q ko'k */
  --accent: #f6c23e;           /* logodagi sariq */
  --leaf: #2f9a2f;             /* logodagi yashil barg */

  --income: #15803d;
  --expense: #c81e1e;
  --income-soft: #dcfce7;
  --expense-soft: #fee2e2;
  --brand-soft: #dbeafe;
  --accent-soft: #fef3c7;

  --app-bg: #f3f6fb;
  --card-bg: #ffffff;
  --card-shadow: 0 1px 3px rgba(15, 30, 60, .08), 0 1px 2px rgba(15, 30, 60, .04);
  --nav-bg: linear-gradient(90deg, #022a6e, #0a5bc4);
  --chart-text: #4b5568;
  --chart-grid: rgba(15, 30, 60, .08);

  --bs-body-bg: var(--app-bg);
  --bs-body-color: #1c2433;
  --bs-secondary-color: #5b6578;            /* text-muted: kontrast 5.9:1 */
  --bs-border-color: #e3e8f1;
  --bs-tertiary-bg: #eef2f8;
  --bs-primary: var(--brand);
  --bs-primary-rgb: var(--brand-rgb);
  --bs-link-color: var(--brand);
  --bs-link-color-rgb: var(--brand-rgb);
  --bs-link-hover-color: var(--brand-hover);
  --bs-link-hover-color-rgb: 8, 74, 159;
  --bs-focus-ring-color: rgba(var(--brand-rgb), .25);
}

/* ---------- Qorong'i tema ---------- */
[data-bs-theme="dark"] {
  --brand: #5b9bff;            /* qorong'i fonda ko'rinishi uchun ochroq ko'k */
  --brand-rgb: 91, 155, 255;
  --brand-hover: #84b4ff;
  --accent: #f7c948;
  --leaf: #4ade80;

  --income: #4ade80;
  --expense: #f87171;
  --income-soft: rgba(74, 222, 128, .14);
  --expense-soft: rgba(248, 113, 113, .14);
  --brand-soft: rgba(91, 155, 255, .16);
  --accent-soft: rgba(247, 201, 72, .14);

  --app-bg: #0a1222;
  --card-bg: #111c33;
  --card-shadow: 0 1px 3px rgba(0, 0, 0, .4);
  --nav-bg: linear-gradient(90deg, #061633, #0b3a85);
  --chart-text: #b4c0d6;
  --chart-grid: rgba(180, 192, 214, .12);

  --bs-body-bg: var(--app-bg);
  --bs-body-color: #e8edf7;
  --bs-secondary-color: #a7b3ca;            /* kontrast 7.8:1 */
  --bs-border-color: #24345c;
  --bs-tertiary-bg: #18264a;
  --bs-secondary-bg: #1d2c52;
  --bs-primary: var(--brand);
  --bs-primary-rgb: var(--brand-rgb);
  --bs-link-color: var(--brand);
  --bs-link-color-rgb: var(--brand-rgb);
  --bs-link-hover-color: var(--brand-hover);
  --bs-link-hover-color-rgb: 132, 180, 255;
  --bs-emphasis-color: #ffffff;
}

body { background: var(--app-bg); transition: background-color .2s ease; }

/* ---------- Tugmalar ---------- */
/* Asosiy tugma ikkala temada ham to'q ko'k fon + oq matn (kontrast 5.5:1) */
.btn-primary {
  --bs-btn-bg: #0a5bc4; --bs-btn-border-color: #0a5bc4; --bs-btn-color: #fff;
  --bs-btn-hover-bg: #084a9f; --bs-btn-hover-border-color: #084a9f; --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: #063c82; --bs-btn-active-border-color: #063c82;
  --bs-btn-disabled-bg: #0a5bc4; --bs-btn-disabled-border-color: #0a5bc4;
}
[data-bs-theme="dark"] .btn-primary {
  --bs-btn-bg: #2563eb; --bs-btn-border-color: #2563eb;
  --bs-btn-hover-bg: #1d4ed8; --bs-btn-hover-border-color: #1d4ed8;
}
/* Kichik ikonka-tugmalar (tahrirlash/o'chirish) — temaga moslashadi */
.btn-icon {
  --bs-btn-bg: var(--bs-tertiary-bg); --bs-btn-color: var(--bs-body-color);
  --bs-btn-border-color: transparent;
  --bs-btn-hover-bg: var(--bs-border-color); --bs-btn-hover-color: var(--bs-body-color);
  --bs-btn-hover-border-color: transparent;
}
.btn-icon.text-danger { color: var(--expense) !important; }
.btn-accent { background: var(--accent); color: #1c2433; border: none; font-weight: 600; }
.btn-accent:hover { background: #e9b021; color: #1c2433; }

/* Google tugmasi — Google talablariga ko'ra oq fon, kulrang ramka */
.btn-google {
  background: #fff; color: #1f1f1f; border: 1px solid #c7cdd8; font-weight: 500;
  display: flex; align-items: center; justify-content: center; gap: .6rem;
}
.btn-google:hover { background: #f5f7fb; color: #1f1f1f; border-color: #aab2c0; }
.btn-google svg { width: 18px; height: 18px; }

/* ---------- Navbar ---------- */
.app-nav { background: var(--nav-bg); }
.app-nav .navbar-brand img { width: 34px; height: 34px; border-radius: 9px; }
.app-nav .nav-link { color: rgba(255, 255, 255, .82); }
.app-nav .nav-link:hover, .app-nav .nav-link:focus { color: #fff; }
.app-nav .nav-link.active { color: #fff; font-weight: 600; box-shadow: inset 0 -2px 0 var(--accent); }
.app-nav .btn-nav { color: #fff; border: 1px solid rgba(255, 255, 255, .3); background: rgba(255, 255, 255, .08); }
.app-nav .btn-nav:hover { background: rgba(255, 255, 255, .18); color: #fff; }

/* ---------- Kartochkalar ---------- */
.card {
  --bs-card-bg: var(--card-bg);
  --bs-card-border-color: transparent;
  border-radius: 14px; box-shadow: var(--card-shadow);
}
.card-header { background: transparent; border-bottom: 1px solid var(--bs-border-color); font-weight: 600; }
.card .list-group-item { background: transparent; border-color: var(--bs-border-color); color: var(--bs-body-color); }
.table { --bs-table-bg: transparent; --bs-table-color: var(--bs-body-color); --bs-table-hover-bg: var(--bs-tertiary-bg); --bs-table-hover-color: var(--bs-body-color); }
.table > :not(caption) > * > * { padding: .6rem .5rem; border-color: var(--bs-border-color); }

/* Statistik kartochkalar */
.stat-card .label { color: var(--bs-secondary-color); font-size: .85rem; }
.stat-card .value { font-size: 1.5rem; font-weight: 700; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.stat-icon { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font-size: 1.3rem; flex-shrink: 0; }

.text-income { color: var(--income) !important; }
.text-expense { color: var(--expense) !important; }
.bg-income-soft { background: var(--income-soft); color: var(--income); }
.bg-expense-soft { background: var(--expense-soft); color: var(--expense); }
.bg-brand-soft { background: var(--brand-soft); color: var(--brand); }
.bg-accent-soft { background: var(--accent-soft); color: #9a6b00; }
[data-bs-theme="dark"] .bg-accent-soft { color: var(--accent); }

.amount { font-variant-numeric: tabular-nums; white-space: nowrap; font-weight: 600; }
.color-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; flex-shrink: 0; }
.tx-row td { vertical-align: middle; }
.page-hint { color: var(--bs-secondary-color); }

/* Qaydlar */
.note-card { border-left: 4px solid var(--bs-primary) !important; }
.note-card .content { white-space: pre-line; color: var(--bs-body-color); opacity: .9; }
.note-card.border-success { border-left-color: var(--bs-success) !important; }
.note-card.border-warning { border-left-color: var(--accent) !important; }
.note-card.border-info { border-left-color: var(--bs-info) !important; }

/* Mobil "+" tugmasi */
.fab { position: fixed; right: 18px; bottom: 18px; z-index: 1030; }
.fab .btn { width: 58px; height: 58px; box-shadow: 0 6px 18px rgba(2, 42, 110, .35); }
@media (max-width: 1199px) { main.container { padding-bottom: 90px !important; } }

/* Kirish/ro'yxatdan o'tish sahifalari */
.auth-wrap { max-width: 460px; margin: 3vh auto 4vh; }
.auth-logo { width: 104px; height: 104px; border-radius: 24px; box-shadow: 0 8px 24px rgba(2, 42, 110, .25); }
.auth-top { display: flex; justify-content: flex-end; gap: .5rem; }
.divider { display: flex; align-items: center; gap: .75rem; color: var(--bs-secondary-color); font-size: .85rem; }
.divider::before, .divider::after { content: ""; flex: 1; border-top: 1px solid var(--bs-border-color); }

.progress { height: 10px; border-radius: 6px; background: var(--bs-tertiary-bg); }
.dropdown-item.active, .dropdown-item:active { background: var(--brand); color: #fff; }
[data-bs-theme="dark"] .dropdown-item.active { background: #2563eb; }

/* Bootstrap ogohlantirishlari qorong'ida ham o'qilsin */
[data-bs-theme="dark"] .alert-warning { color: #fde68a; }

/* Chiziqli asosiy tugma — brend rangida, ikkala temada o'qiladi */
.btn-outline-primary {
  --bs-btn-color: var(--brand); --bs-btn-border-color: var(--brand);
  --bs-btn-hover-bg: var(--brand); --bs-btn-hover-border-color: var(--brand); --bs-btn-hover-color: #fff;
  --bs-btn-active-bg: var(--brand); --bs-btn-active-border-color: var(--brand); --bs-btn-active-color: #fff;
}
[data-bs-theme="dark"] .btn-outline-primary { --bs-btn-hover-color: #0a1222; --bs-btn-active-color: #0a1222; }
.text-primary { color: var(--brand) !important; }

/* Navbar: menyu so'zlari bitta qatorda tursin */
.app-nav .nav-link { white-space: nowrap; }
@media (min-width: 1200px) { .app-nav .navbar-nav .nav-link { padding-left: .55rem; padding-right: .55rem; } }

/* Yashil chiziqli tugma qorong'i fonda ham yaxshi o'qilsin */
[data-bs-theme="dark"] .btn-outline-success {
  --bs-btn-color: #4ade80; --bs-btn-border-color: #4ade80;
  --bs-btn-hover-bg: #4ade80; --bs-btn-hover-border-color: #4ade80; --bs-btn-hover-color: #0a1222;
}
/* Kategoriya rang nuqtasi har qanday fonda chegarasi bilan ko'rinsin */
.color-dot { box-shadow: 0 0 0 1px rgba(127, 127, 127, .35); }

/* Bosiladigan kartalar: ustiga kelganda ko'tariladi, bosish mumkinligi seziladi */
a.card-link { color: inherit; text-decoration: none; transition: transform .15s ease, box-shadow .15s ease; }
a.card-link:hover, a.card-link:focus-visible { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(10, 91, 196, .18); color: inherit; }
a.card-link:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
@media (prefers-reduced-motion: reduce) { a.card-link { transition: none; } a.card-link:hover { transform: none; } }
.budget-row:hover { opacity: .85; }

/* 1200–1399px: menyu bandlari ko'p — ikonkalarsiz, zichroq (gorizontal scroll bo'lmasin) */
@media (min-width: 1200px) and (max-width: 1399.98px) {
  .app-nav .navbar-nav.me-auto .nav-link > .bi { display: none; }
  .app-nav .navbar-nav .nav-link { padding-left: .45rem; padding-right: .45rem; }
  .app-nav .navbar-brand { margin-right: .5rem; }
}
