/* ============================================================
   THEME V2 — visual-only reskin, toggled via body.theme-v2
   Nothing here changes markup semantics, routes, or data.
   The original style.css is untouched and still the default.
   ============================================================ */

/* the v2 top nav markup is always in the DOM (nothing "deleted"),
   but stays hidden unless the v2 theme is active */
.v2-topnav { display: none; }

/* theme toggle: floating, visible in both themes so it's always reachable */
.v2-theme-toggle-float {
  position: fixed;
  bottom: 18px;
  inset-inline-start: 18px;
  z-index: 200;
  background: #1e2a3a;
  color: #fff;
  border: none;
  border-radius: 999px;
  padding: 10px 18px;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
  font-family: "Rubik", "Segoe UI", Arial, sans-serif;
}
body.theme-v2 .v2-theme-toggle-float {
  background: #fff;
  color: var(--v2-ink);
  border: 1px solid var(--v2-border);
}

body.theme-v2 {
  --v2-bg: #f4f7fb;
  --v2-panel: #ffffff;
  --v2-border: #e7ecf3;
  --v2-ink: #1e2a3a;
  --v2-muted: #6b7c93;
  --v2-blue: #3b82f6;
  --v2-blue-bg: #eaf2ff;
  --v2-teal: #14b8a6;
  --v2-teal-bg: #e6faf7;
  --v2-green: #22c55e;
  --v2-green-bg: #eafcf1;
  --v2-orange: #f59e0b;
  --v2-orange-bg: #fef6e6;
  --v2-red: #ef4444;
  --v2-red-bg: #fdecec;
  --v2-radius: 16px;
  --v2-radius-sm: 10px;
  --v2-shadow: 0 1px 2px rgba(30, 42, 58, 0.04), 0 4px 16px rgba(30, 42, 58, 0.05);

  background: var(--v2-bg);
  color: var(--v2-ink);
  font-family: "Rubik", "Segoe UI", Arial, sans-serif;
}

/* ---- shell / layout ---- */
body.theme-v2 .sidebar { display: none; }
body.theme-v2 .app-shell { display: block; min-height: 100vh; }
body.theme-v2 .main-col { display: block; width: 100%; }

body.theme-v2 .v2-topnav {
  display: flex;
  align-items: center;
  gap: 18px;
  background: var(--v2-panel);
  border-bottom: 1px solid var(--v2-border);
  padding: 10px 24px;
  flex-wrap: wrap;
}
body.theme-v2 .v2-topnav-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--v2-ink);
  white-space: nowrap;
  margin-inline-start: auto;
}
body.theme-v2 .v2-topnav-brand-badge {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: var(--v2-teal);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
body.theme-v2 .v2-topnav-brand-badge svg { width: 18px; height: 18px; }
body.theme-v2 .v2-topnav-brand-text small { display: block; font-weight: 400; color: var(--v2-muted); font-size: 0.72rem; }

body.theme-v2 .v2-nav-items {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-wrap: wrap;
}
body.theme-v2 .v2-nav-items a {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 10px;
  color: var(--v2-muted);
  text-decoration: none;
  font-size: 0.85rem;
  font-weight: 500;
  white-space: nowrap;
}
body.theme-v2 .v2-nav-items a svg { width: 16px; height: 16px; }
body.theme-v2 .v2-nav-items a:hover { background: var(--v2-bg); color: var(--v2-ink); }
body.theme-v2 .v2-nav-items a.active { background: var(--v2-blue-bg); color: var(--v2-blue); font-weight: 600; }

body.theme-v2 .v2-theme-toggle {
  border: 1px solid var(--v2-teal);
  color: var(--v2-teal);
  background: var(--v2-teal-bg);
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}

body.theme-v2 .topbar {
  background: var(--v2-panel);
  border-bottom: 1px solid var(--v2-border);
}
body.theme-v2 .topbar-search input {
  background: var(--v2-bg);
  border-color: var(--v2-border);
  border-radius: 10px;
}
body.theme-v2 .btn.btn-sync {
  background: var(--v2-blue);
  border-radius: 999px;
}

body.theme-v2 .content {
  max-width: 1280px;
  padding: 24px 32px 40px;
}

/* ---- generic surfaces ---- */
body.theme-v2 .panel,
body.theme-v2 .card,
body.theme-v2 .stat-box {
  background: var(--v2-panel);
  border: 1px solid var(--v2-border);
  border-radius: var(--v2-radius);
  box-shadow: var(--v2-shadow);
}
body.theme-v2 .panel { padding: 20px 22px; }

body.theme-v2 h1 {
  font-family: "Rubik", sans-serif;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--v2-ink);
}
body.theme-v2 h2 { color: var(--v2-ink); font-size: 1rem; font-weight: 700; }

/* ---- dashboard stat cards ---- */
body.theme-v2 .cards { gap: 16px; }
body.theme-v2 .card { padding: 18px 18px; gap: 14px; }
body.theme-v2 .stat-icon {
  width: 44px;
  height: 44px;
  border-radius: var(--v2-radius-sm);
  background: var(--v2-blue-bg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
}
body.theme-v2 .stat-icon.icon-green { background: var(--v2-green-bg); }
body.theme-v2 .stat-icon.icon-red { background: var(--v2-red-bg); }
body.theme-v2 .stat-icon.icon-orange { background: var(--v2-orange-bg); }
body.theme-v2 .stat-icon.icon-blue { background: var(--v2-blue-bg); }
body.theme-v2 .card-label { color: var(--v2-muted); font-size: 0.8rem; }
body.theme-v2 .card-value {
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--v2-ink);
}
body.theme-v2 .card-value-success { color: var(--v2-green); }
body.theme-v2 .card-value-danger { color: var(--v2-red); }

/* ---- charts ---- */
body.theme-v2 .line-current { stroke: var(--v2-blue); }
body.theme-v2 .line-prev { stroke: var(--v2-border); }
body.theme-v2 .swatch-income { background: var(--v2-blue); }
body.theme-v2 .swatch-expense { background: var(--v2-red); }
body.theme-v2 .bar-income { background: var(--v2-blue); }
body.theme-v2 .bar-expense { background: var(--v2-red); }

/* ---- buttons ---- */
body.theme-v2 .btn {
  border-radius: 10px;
  font-weight: 500;
}
body.theme-v2 .btn-primary {
  background: var(--v2-blue);
  border-color: var(--v2-blue);
}
body.theme-v2 .btn-primary:hover { background: #2f6fdb; }
body.theme-v2 .btn-danger { border-color: var(--v2-red); color: var(--v2-red); }

/* ---- tables ---- */
body.theme-v2 .data-table th {
  background: var(--v2-bg);
  color: var(--v2-muted);
  font-weight: 600;
  font-size: 0.78rem;
  border-bottom: 1px solid var(--v2-border);
}
body.theme-v2 .data-table td { border-bottom: 1px solid var(--v2-border); }
body.theme-v2 .data-table tr:hover td { background: var(--v2-bg); }

/* ---- forms ---- */
body.theme-v2 .form-row input,
body.theme-v2 .form-row select,
body.theme-v2 .form-row textarea,
body.theme-v2 .hebrew-cal-picker-btn {
  border-radius: 10px;
  border-color: var(--v2-border);
  background: var(--v2-panel);
}
body.theme-v2 .form-row input:focus,
body.theme-v2 .form-row select:focus,
body.theme-v2 .form-row textarea:focus {
  border-color: var(--v2-blue);
  box-shadow: 0 0 0 3px var(--v2-blue-bg);
  outline: none;
}

/* ---- chips / badges ---- */
body.theme-v2 .chip { border-radius: 999px; }
body.theme-v2 .chip-active,
body.theme-v2 .chip-active-green {
  background: var(--v2-blue-bg);
  color: var(--v2-blue);
  border-color: transparent;
}

/* ---- modal ---- */
body.theme-v2 dialog {
  border-radius: var(--v2-radius);
  border: none;
  box-shadow: 0 10px 40px rgba(30, 42, 58, 0.18);
}
body.theme-v2 .alerts-popup-header { background: var(--v2-blue-bg); border-color: var(--v2-border); }
body.theme-v2 .alert-item { border-radius: 12px; border-color: var(--v2-border); }
body.theme-v2 .alert-item-warning { background: var(--v2-orange-bg); border-color: #fbe4b5; }
body.theme-v2 .alert-item-reminder { background: var(--v2-blue-bg); }
body.theme-v2 .alert-item-dismiss { border-radius: 999px; }

/* ---- buttons, extended ---- */
body.theme-v2 .btn-small { border-radius: 8px; }
body.theme-v2 .btn-sync { border-radius: 999px; }
body.theme-v2 .icon-btn-small { color: var(--v2-muted); border-radius: 8px; padding: 4px 6px; }
body.theme-v2 .icon-btn-small:hover { background: var(--v2-bg); color: var(--v2-ink); }
body.theme-v2 .icon-btn { color: var(--v2-muted); border-radius: 8px; }
body.theme-v2 .icon-btn:hover { background: var(--v2-bg); }

/* ---- links ---- */
body.theme-v2 a { color: var(--v2-blue); }
body.theme-v2 .view-all-link,
body.theme-v2 .export-link { color: var(--v2-blue); }

/* ---- panels / boxes, extended ---- */
body.theme-v2 .stat-box { background: var(--v2-panel); border-color: var(--v2-border); border-radius: var(--v2-radius-sm); box-shadow: none; }
body.theme-v2 .stat-box strong { color: var(--v2-ink); }
body.theme-v2 .stat-box-violet strong { color: #8b5cf6; }
body.theme-v2 .stat-box-blue strong { color: var(--v2-blue); }
body.theme-v2 .stat-box-teal strong { color: var(--v2-teal); }
body.theme-v2 .member-avatar { background: var(--v2-blue); border-radius: var(--v2-radius-sm); }
body.theme-v2 .payment-icon { background: var(--v2-blue-bg); color: var(--v2-blue); border-radius: 8px; }
body.theme-v2 .payment-amount-value { color: var(--v2-ink); }
body.theme-v2 .fund-header-icon { background: var(--v2-teal-bg); border-radius: var(--v2-radius-sm); }

/* ---- badges / chips, extended ---- */
body.theme-v2 .badge { border-radius: 999px; }
body.theme-v2 .badge-active { background: var(--v2-blue-bg); color: var(--v2-blue); }
body.theme-v2 .badge-pending { background: var(--v2-orange-bg); color: #b06a00; }
body.theme-v2 .badge-independent { background: var(--v2-teal-bg); color: #0d8f80; }
body.theme-v2 .badge-source { background: var(--v2-blue-bg); color: var(--v2-blue); }
body.theme-v2 .badge-status-ממתין { background: var(--v2-orange-bg); color: #b06a00; }
body.theme-v2 .badge-status-חלקי { background: var(--v2-orange-bg); color: #b06a00; }
body.theme-v2 .badge-status-שולם { background: var(--v2-green-bg); color: #15803d; }
body.theme-v2 .badge-status-בוטל { background: #f1f3f6; color: var(--v2-muted); }
body.theme-v2 .chip { border-radius: 999px; border-color: var(--v2-border); background: var(--v2-panel); }
body.theme-v2 .chip:hover { background: var(--v2-bg); }
body.theme-v2 .chip.chip-active,
body.theme-v2 .chip.chip-primary.chip-active { background: var(--v2-blue); border-color: var(--v2-blue); }
body.theme-v2 .chip.chip-active-green { background: var(--v2-teal); border-color: var(--v2-teal); }
body.theme-v2 .chip-warning { border-color: var(--v2-orange); color: #b06a00; }
body.theme-v2 .chip-new { border-color: var(--v2-teal); color: #0d8f80; }
body.theme-v2 .radio-chip { border-radius: 999px; border-color: var(--v2-border); }
body.theme-v2 .radio-chip:has(input:checked) { border-color: var(--v2-blue); background: var(--v2-blue-bg); }

/* ---- flash / warning banners ---- */
body.theme-v2 .flash { border-radius: 10px; }
body.theme-v2 .flash-success { background: var(--v2-green-bg); color: #15803d; }
body.theme-v2 .flash-error { background: var(--v2-red-bg); color: #b91c1c; }
body.theme-v2 .unmatched-banner { background: var(--v2-orange-bg); border-color: #f2cf85; border-radius: 12px; color: #92650a; }
body.theme-v2 .danger-warning { background: var(--v2-red-bg); border-color: #f3c4c4; border-radius: 12px; color: #b91c1c; }
body.theme-v2 .pledge-match-banner { background: var(--v2-orange-bg); border-inline-start-color: var(--v2-orange); }
body.theme-v2 .reminder-row-warning { background: var(--v2-orange-bg); border-radius: 10px; }
body.theme-v2 .reminder-row-due { background: var(--v2-blue-bg); border-radius: 10px; }
body.theme-v2 .linked-contact { background: var(--v2-blue-bg); border-radius: 10px; }

/* ---- dropdowns ---- */
body.theme-v2 .notif-dropdown,
body.theme-v2 .user-menu-dropdown,
body.theme-v2 .autocomplete-dropdown {
  border-radius: var(--v2-radius-sm);
  border-color: var(--v2-border);
  box-shadow: var(--v2-shadow), 0 8px 24px rgba(30, 42, 58, 0.08);
}
body.theme-v2 .notif-item:hover,
body.theme-v2 .user-menu-dropdown button:hover,
body.theme-v2 .autocomplete-item:hover { background: var(--v2-blue-bg); }

/* ---- import cards ---- */
body.theme-v2 .import-card { border-radius: var(--v2-radius-sm); border-color: var(--v2-border); background: var(--v2-panel); }
body.theme-v2 .import-card:hover { border-color: var(--v2-blue); }
body.theme-v2 .import-card.selected { border-color: var(--v2-blue); background: var(--v2-blue-bg); }
body.theme-v2 .upload-box { border-radius: var(--v2-radius-sm); border-color: var(--v2-border); }

/* ---- pagination ---- */
body.theme-v2 .pagination-status { color: var(--v2-muted); }

/* ---- year nav / dash tabs ---- */
body.theme-v2 .year-nav { background: var(--v2-panel); border-color: var(--v2-border); border-radius: 999px; }
body.theme-v2 .year-label { color: var(--v2-ink); }
body.theme-v2 .dash-tabs { background: var(--v2-panel); border-color: var(--v2-border); border-radius: 999px; }
body.theme-v2 .dash-tab.active { background: var(--v2-blue); border-radius: 999px; }
body.theme-v2 .dash-tab-danger.active { background: var(--v2-red); }

/* ---- report cards ---- */
body.theme-v2 .report-card { border-radius: var(--v2-radius); }
body.theme-v2 .report-card-balance { background: var(--v2-blue-bg); }
body.theme-v2 .report-card-balance .card-value { color: var(--v2-blue); }
body.theme-v2 .report-card-expenses { background: var(--v2-red-bg); }
body.theme-v2 .report-card-expenses .card-value { color: var(--v2-red); }
body.theme-v2 .report-card-income { background: var(--v2-green-bg); }
body.theme-v2 .report-card-income .card-value { color: var(--v2-green); }

/* ---- auth pages (login / setup) ---- */
body.theme-v2.auth-body { background: var(--v2-bg); }
body.theme-v2 .auth-card {
  background: var(--v2-panel);
  border-color: var(--v2-border);
  border-radius: var(--v2-radius);
  box-shadow: var(--v2-shadow), 0 8px 30px rgba(30, 42, 58, 0.06);
}
