/* ============================================================
   THEME V3 — second visual-only reskin attempt, toggled via
   body.theme-v3 (cookie theme_variant=v3). Nothing here changes
   markup semantics, routes, or data. style.css and style-v2.css
   stay untouched and fully intact.
   ============================================================ */

body.theme-v3 {
  --v3-bg: #f6f5fb;
  --v3-panel: #ffffff;
  --v3-border: #eae7f5;
  --v3-ink: #211f38;
  --v3-muted: #726e94;
  --v3-violet: #6d28d9;
  --v3-violet-2: #4338ca;
  --v3-grad: linear-gradient(135deg, #7c3aed 0%, #4f46e5 100%);
  --v3-grad-teal: linear-gradient(135deg, #0d9488 0%, #14b8a6 100%);
  --v3-grad-amber: linear-gradient(135deg, #d97706 0%, #f59e0b 100%);
  --v3-grad-rose: linear-gradient(135deg, #be123c 0%, #f43f5e 100%);
  --v3-violet-bg: #f1ecfd;
  --v3-teal-bg: #e5f8f5;
  --v3-amber-bg: #fdf1e2;
  --v3-rose-bg: #fde8ec;
  --v3-green: #0d9488;
  --v3-radius: 18px;
  --v3-radius-sm: 12px;
  --v3-shadow: 0 2px 6px rgba(76, 29, 149, 0.06), 0 10px 30px rgba(76, 29, 149, 0.07);

  background: radial-gradient(1200px 600px at 100% -10%, #f0ecfd 0%, var(--v3-bg) 45%);
  color: var(--v3-ink);
  font-family: "Rubik", "Segoe UI", Arial, sans-serif;
}

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

body.theme-v3 .v2-topnav {
  display: flex;
  align-items: center;
  gap: 20px;
  background: var(--v3-panel);
  border-bottom: 1px solid var(--v3-border);
  padding: 12px 28px;
  flex-wrap: wrap;
  position: sticky;
  top: 0;
  z-index: 20;
}
body.theme-v3 .v2-topnav-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 0.95rem;
  font-family: "Outfit", "Rubik", sans-serif;
  color: var(--v3-ink);
  white-space: nowrap;
  margin-inline-start: auto;
}
body.theme-v3 .v2-topnav-brand-badge {
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: var(--v3-grad);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-shadow: 0 4px 12px rgba(109, 40, 217, 0.3);
}
body.theme-v3 .v2-topnav-brand-badge svg { width: 18px; height: 18px; }

body.theme-v3 .v2-nav-items {
  display: flex;
  align-items: center;
  gap: 2px;
  flex-wrap: wrap;
}
body.theme-v3 .v2-nav-items a {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 9px 14px;
  border-radius: 999px;
  color: var(--v3-muted);
  text-decoration: none;
  font-size: 0.84rem;
  font-weight: 600;
  white-space: nowrap;
  transition: background 0.15s, color 0.15s;
}
body.theme-v3 .v2-nav-items a svg { width: 16px; height: 16px; }
body.theme-v3 .v2-nav-items a:hover { background: var(--v3-violet-bg); color: var(--v3-violet); }
body.theme-v3 .v2-nav-items a.active {
  background: var(--v3-grad);
  color: #fff;
  box-shadow: 0 4px 14px rgba(109, 40, 217, 0.28);
}

body.theme-v3 .v2-theme-toggle {
  border: none;
  color: #fff;
  background: var(--v3-grad);
  border-radius: 999px;
  padding: 6px 14px;
  font-size: 0.78rem;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
}

body.theme-v3 .topbar {
  background: var(--v3-panel);
  border-bottom: 1px solid var(--v3-border);
}
body.theme-v3 .topbar-search input {
  background: var(--v3-bg);
  border-color: var(--v3-border);
  border-radius: 999px;
  padding-inline-start: 38px;
}
body.theme-v3 .btn.btn-sync {
  background: var(--v3-grad);
  border-radius: 999px;
  box-shadow: 0 4px 12px rgba(109, 40, 217, 0.22);
}

body.theme-v3 .content {
  max-width: 1280px;
  padding: 26px 32px 44px;
}

/* ---- typography ---- */
body.theme-v3 h1 {
  font-family: "Outfit", "Rubik", sans-serif;
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--v3-ink);
  letter-spacing: -0.01em;
}
body.theme-v3 h2 {
  font-family: "Outfit", "Rubik", sans-serif;
  color: var(--v3-ink);
  font-size: 1rem;
  font-weight: 600;
}

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

/* ---- dashboard stat cards ---- */
body.theme-v3 .cards { gap: 16px; }
body.theme-v3 .card {
  padding: 20px 18px;
  gap: 14px;
  position: relative;
  overflow: hidden;
}
body.theme-v3 .stat-icon {
  width: 46px;
  height: 46px;
  border-radius: 14px;
  background: var(--v3-grad);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  box-shadow: 0 6px 16px rgba(109, 40, 217, 0.25);
}
body.theme-v3 .stat-icon.icon-green { background: var(--v3-grad-teal); box-shadow: 0 6px 16px rgba(13, 148, 136, 0.25); }
body.theme-v3 .stat-icon.icon-red { background: var(--v3-grad-rose); box-shadow: 0 6px 16px rgba(190, 18, 60, 0.25); }
body.theme-v3 .stat-icon.icon-orange { background: var(--v3-grad-amber); box-shadow: 0 6px 16px rgba(217, 119, 6, 0.25); }
body.theme-v3 .stat-icon.icon-blue { background: var(--v3-grad); }
body.theme-v3 .card-label { color: var(--v3-muted); font-size: 0.8rem; font-weight: 500; }
body.theme-v3 .card-value {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--v3-ink);
  font-family: "Outfit", "Rubik", sans-serif;
}
body.theme-v3 .card-value-success { color: var(--v3-green); }
body.theme-v3 .card-value-danger { color: #be123c; }

/* ---- charts ---- */
body.theme-v3 .line-current { stroke: var(--v3-violet); }
body.theme-v3 .line-prev { stroke: var(--v3-border); }
body.theme-v3 .swatch-income { background: var(--v3-violet); }
body.theme-v3 .swatch-expense { background: #f43f5e; }
body.theme-v3 .bar-income { background: var(--v3-violet); border-radius: 6px 6px 0 0; }
body.theme-v3 .bar-expense { background: #f43f5e; border-radius: 6px 6px 0 0; }
body.theme-v3 .yoy-dot-current { fill: var(--v3-violet); }
body.theme-v3 .yoy-tooltip { border-radius: var(--v3-radius-sm); border-color: var(--v3-border); }

/* ---- buttons ---- */
body.theme-v3 .btn {
  border-radius: 12px;
  font-weight: 600;
  border-color: var(--v3-border);
}
body.theme-v3 .btn:hover { background: var(--v3-bg); }
body.theme-v3 .btn-small { border-radius: 9px; }
body.theme-v3 .btn-primary {
  background: var(--v3-grad);
  border: none;
  box-shadow: 0 4px 12px rgba(109, 40, 217, 0.25);
}
body.theme-v3 .btn-primary:hover { filter: brightness(1.06); background: var(--v3-grad); }
body.theme-v3 .btn-danger { border-color: #f43f5e; color: #be123c; }
body.theme-v3 .btn-danger:hover { background: #f43f5e; color: #fff; }
body.theme-v3 .icon-btn-small { color: var(--v3-muted); border-radius: 9px; padding: 4px 6px; }
body.theme-v3 .icon-btn-small:hover { background: var(--v3-violet-bg); color: var(--v3-violet); }
body.theme-v3 .icon-btn { color: var(--v3-muted); border-radius: 9px; }
body.theme-v3 .icon-btn:hover { background: var(--v3-violet-bg); color: var(--v3-violet); }

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

/* ---- tables ---- */
body.theme-v3 .data-table {
  border-radius: var(--v3-radius);
  border-color: var(--v3-border);
  box-shadow: var(--v3-shadow);
}
body.theme-v3 .data-table th {
  background: var(--v3-violet-bg);
  color: var(--v3-violet-2);
  font-weight: 700;
  font-size: 0.76rem;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  border-bottom: none;
}
body.theme-v3 .data-table td { border-bottom: 1px solid var(--v3-border); }
body.theme-v3 .data-table tr:hover td { background: #faf9fe; }

/* ---- forms ---- */
body.theme-v3 .form-row input,
body.theme-v3 .form-row select,
body.theme-v3 .form-row textarea,
body.theme-v3 .hebrew-cal-picker-btn,
body.theme-v3 .search-bar input,
body.theme-v3 .filter-item select,
body.theme-v3 .filter-row > select,
body.theme-v3 .filter-row > input {
  border-radius: 12px;
  border-color: var(--v3-border);
  background: var(--v3-panel);
}
body.theme-v3 .form-row input:focus,
body.theme-v3 .form-row select:focus,
body.theme-v3 .form-row textarea:focus {
  border-color: var(--v3-violet);
  box-shadow: 0 0 0 4px var(--v3-violet-bg);
  outline: none;
}
body.theme-v3 .form-row label { color: var(--v3-muted); font-weight: 600; }

/* ---- chips / badges ---- */
body.theme-v3 .chip { border-radius: 999px; border-color: var(--v3-border); background: var(--v3-panel); font-weight: 600; }
body.theme-v3 .chip:hover { background: var(--v3-violet-bg); }
body.theme-v3 .chip.chip-active,
body.theme-v3 .chip.chip-primary.chip-active { background: var(--v3-grad); border: none; color: #fff; }
body.theme-v3 .chip.chip-active-green { background: var(--v3-grad-teal); border: none; color: #fff; }
body.theme-v3 .chip-warning { border-color: #f59e0b; color: #b45309; }
body.theme-v3 .chip-new { border-color: #14b8a6; color: #0f766e; }
body.theme-v3 .radio-chip { border-radius: 999px; border-color: var(--v3-border); font-weight: 500; }
body.theme-v3 .radio-chip:has(input:checked) { border-color: var(--v3-violet); background: var(--v3-violet-bg); color: var(--v3-violet-2); }

body.theme-v3 .badge { border-radius: 999px; font-weight: 600; }
body.theme-v3 .badge-active { background: var(--v3-violet-bg); color: var(--v3-violet-2); }
body.theme-v3 .badge-pending { background: var(--v3-amber-bg); color: #b45309; }
body.theme-v3 .badge-independent { background: var(--v3-teal-bg); color: #0f766e; }
body.theme-v3 .badge-source { background: var(--v3-violet-bg); color: var(--v3-violet-2); }
body.theme-v3 .badge-status-ממתין { background: var(--v3-amber-bg); color: #b45309; }
body.theme-v3 .badge-status-חלקי { background: var(--v3-amber-bg); color: #b45309; }
body.theme-v3 .badge-status-שולם { background: var(--v3-teal-bg); color: #0f766e; }
body.theme-v3 .badge-status-בוטל { background: #f1f0f7; color: var(--v3-muted); }

/* ---- flash / warning banners ---- */
body.theme-v3 .flash { border-radius: var(--v3-radius-sm); font-weight: 500; }
body.theme-v3 .flash-success { background: var(--v3-teal-bg); color: #0f766e; }
body.theme-v3 .flash-error { background: var(--v3-rose-bg); color: #be123c; }
body.theme-v3 .unmatched-banner { background: var(--v3-amber-bg); border-color: #f3d391; border-radius: var(--v3-radius-sm); color: #92620a; }
body.theme-v3 .danger-warning { background: var(--v3-rose-bg); border-color: #f6c2cc; border-radius: var(--v3-radius-sm); color: #be123c; }
body.theme-v3 .pledge-match-banner { background: var(--v3-amber-bg); border-inline-start-color: #f59e0b; }
body.theme-v3 .reminder-row-warning { background: var(--v3-amber-bg); border-radius: var(--v3-radius-sm); }
body.theme-v3 .reminder-row-due { background: var(--v3-violet-bg); border-radius: var(--v3-radius-sm); }
body.theme-v3 .linked-contact { background: var(--v3-violet-bg); border-radius: var(--v3-radius-sm); }

/* ---- dropdowns / modals ---- */
body.theme-v3 .notif-dropdown,
body.theme-v3 .user-menu-dropdown,
body.theme-v3 .autocomplete-dropdown {
  border-radius: var(--v3-radius-sm);
  border-color: var(--v3-border);
  box-shadow: var(--v3-shadow), 0 10px 30px rgba(76, 29, 149, 0.1);
}
body.theme-v3 .notif-item:hover,
body.theme-v3 .user-menu-dropdown button:hover,
body.theme-v3 .autocomplete-item:hover { background: var(--v3-violet-bg); }
body.theme-v3 .notif-badge { background: var(--v3-grad-rose); }

body.theme-v3 dialog {
  border-radius: var(--v3-radius);
  border: none;
  box-shadow: 0 20px 60px rgba(76, 29, 149, 0.22);
}
body.theme-v3 .alerts-popup-header { background: var(--v3-violet-bg); border-color: var(--v3-border); }
body.theme-v3 .alert-item { border-radius: var(--v3-radius-sm); border-color: var(--v3-border); }
body.theme-v3 .alert-item-warning { background: var(--v3-amber-bg); border-color: #f3d391; }
body.theme-v3 .alert-item-reminder { background: var(--v3-violet-bg); }
body.theme-v3 .alert-item-dismiss { border-radius: 999px; }

/* ---- member header / stats ---- */
body.theme-v3 .member-avatar {
  background: var(--v3-grad);
  border-radius: var(--v3-radius-sm);
  box-shadow: 0 6px 16px rgba(109, 40, 217, 0.28);
}
body.theme-v3 .stat-box strong { color: var(--v3-ink); font-family: "Outfit", "Rubik", sans-serif; }
body.theme-v3 .stat-box-violet strong { color: #7c3aed; }
body.theme-v3 .stat-box-blue strong { color: #4338ca; }
body.theme-v3 .stat-box-teal strong { color: #0d9488; }
body.theme-v3 .payment-icon { background: var(--v3-violet-bg); color: var(--v3-violet-2); border-radius: 9px; }
body.theme-v3 .payment-amount-value { color: var(--v3-ink); font-family: "Outfit", "Rubik", sans-serif; }
body.theme-v3 .fund-header-icon { background: var(--v3-grad-teal); color: #fff; border-radius: var(--v3-radius-sm); }

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

/* ---- year nav / dash tabs ---- */
body.theme-v3 .year-nav { background: var(--v3-panel); border-color: var(--v3-border); border-radius: 999px; }
body.theme-v3 .year-label { color: var(--v3-ink); font-family: "Outfit", "Rubik", sans-serif; }
body.theme-v3 .dash-tabs { background: var(--v3-panel); border-color: var(--v3-border); border-radius: 999px; }
body.theme-v3 .dash-tab.active { background: var(--v3-grad); border-radius: 999px; }
body.theme-v3 .dash-tab-danger.active { background: var(--v3-grad-rose); }

/* ---- report cards ---- */
body.theme-v3 .report-card { border-radius: var(--v3-radius); }
body.theme-v3 .report-card-balance { background: var(--v3-violet-bg); }
body.theme-v3 .report-card-balance .card-value { color: var(--v3-violet-2); }
body.theme-v3 .report-card-expenses { background: var(--v3-rose-bg); }
body.theme-v3 .report-card-expenses .card-value { color: #be123c; }
body.theme-v3 .report-card-income { background: var(--v3-teal-bg); }
body.theme-v3 .report-card-income .card-value { color: #0f766e; }

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

/* ---- auth pages ---- */
body.theme-v3.auth-body {
  background: radial-gradient(1200px 600px at 50% -10%, #f0ecfd 0%, var(--v3-bg) 55%);
}
body.theme-v3 .auth-card {
  background: var(--v3-panel);
  border-color: var(--v3-border);
  border-radius: var(--v3-radius);
  box-shadow: var(--v3-shadow), 0 20px 50px rgba(76, 29, 149, 0.1);
}
body.theme-v3 .auth-card h1 { font-family: "Outfit", "Rubik", sans-serif; }
