/* =========================================================================
   REPORTS HUB
   ========================================================================= */
.reports-hero {
  background: var(--paper-50);
  padding: var(--sp-7) 0 var(--sp-6);
  border-bottom: 1px solid var(--paper-100);
}

/* ---------- tab bar ---------- */
.report-tabs {
  display: flex;
  gap: var(--sp-2);
  overflow-x: auto;
  padding-bottom: 2px;
  margin-top: var(--sp-6);
  border-bottom: 1px solid var(--paper-100);
}
.report-tab {
  flex-shrink: 0;
  height: 44px;
  padding: 0 var(--sp-4);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink-600);
  white-space: nowrap;
  transition: color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);
}
.report-tab:hover { color: var(--ink-950); }
.report-tab.is-active { color: var(--ink-950); border-bottom-color: var(--brass-500); }
.report-tab[disabled] { color: var(--ink-200); cursor: not-allowed; }

.no-access-card {
  margin-top: var(--sp-6);
  padding: var(--sp-7);
  text-align: center;
  border-radius: var(--r-lg);
  background: var(--paper-0);
  border: 1px solid var(--paper-100);
  color: var(--ink-600);
}

/* ---------- report content area ---------- */
.report-panel { display: none; }
.report-panel.is-active { display: block; animation: fieldOpen var(--dur-med) var(--ease-out); }

.report-toolbar {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--sp-5);
  flex-wrap: wrap;
  margin-bottom: var(--sp-5);
}
.report-toolbar h2 { font-size: clamp(22px, 2.6vw, 28px); }
.report-toolbar p { margin-top: var(--sp-1); color: var(--ink-600); font-size: 13.5px; }
.report-toolbar__actions { display: flex; gap: var(--sp-2); }

.summary-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: var(--sp-4);
  margin-bottom: var(--sp-6);
}
.summary-stat {
  padding: var(--sp-5);
  border-radius: var(--r-md);
  border: 1px solid var(--paper-100);
  background: var(--paper-0);
}
.summary-stat .value { font-family: var(--font-mono); font-size: 24px; font-weight: 600; color: var(--ink-950); }
.summary-stat .value.is-positive { color: var(--sage-600); }
.summary-stat .value.is-negative { color: var(--rust-600); }
.summary-stat .label { font-size: 12.5px; color: var(--ink-600); margin-top: 4px; }

.report-block-mini {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: var(--sp-3);
  margin-bottom: var(--sp-6);
}
.report-block-mini__card {
  padding: var(--sp-4);
  border-radius: var(--r-md);
  border: 1px solid var(--paper-100);
  background: var(--paper-0);
  text-align: center;
}
.report-block-mini__card .block { font-family: var(--font-mono); font-size: 12px; color: var(--brass-600); text-transform: uppercase; letter-spacing: .04em; }
.report-block-mini__card .pct { font-family: var(--font-mono); font-size: 20px; font-weight: 600; color: var(--ink-950); margin-top: 4px; }
.report-block-mini__card .amt { font-size: 11px; color: var(--ink-400); margin-top: 2px; }
@media (max-width: 900px) { .report-block-mini { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px) { .report-block-mini { grid-template-columns: repeat(2, 1fr); } }

/* ---------- expenses tab: filters, breakdowns, entry form ---------- */
.expense-filter-row {
  display: grid;
  grid-template-columns: repeat(4, 1fr) auto;
  gap: var(--sp-3);
  align-items: end;
  margin-bottom: var(--sp-6);
}
.expense-filter-row .field { margin-bottom: 0; }
@media (max-width: 900px) { .expense-filter-row { grid-template-columns: 1fr 1fr; } }

.breakdown-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-5);
  margin-bottom: var(--sp-6);
}
.breakdown-card {
  border-radius: var(--r-md);
  border: 1px solid var(--paper-100);
  background: var(--paper-0);
  overflow: hidden;
}
.breakdown-card__head {
  padding: var(--sp-4) var(--sp-5);
  background: var(--paper-50);
  border-bottom: 1px solid var(--paper-100);
  font-weight: 700;
  font-size: 14px;
}
.breakdown-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--sp-3) var(--sp-5);
  border-bottom: 1px solid var(--paper-100);
  font-size: 13px;
}
.breakdown-row:last-child { border-bottom: none; }
.breakdown-row .count { color: var(--ink-400); font-size: 11.5px; margin-left: 6px; }
.breakdown-row .amt { font-family: var(--font-mono); font-weight: 600; }
@media (max-width: 800px) { .breakdown-grid { grid-template-columns: 1fr; } }

.expense-entry-toggle { margin-bottom: var(--sp-5); }
.expense-entry-form {
  display: none;
  padding: var(--sp-6);
  border-radius: var(--r-lg);
  border: 1px solid var(--paper-100);
  background: var(--paper-0);
  box-shadow: var(--shadow-sm);
  margin-bottom: var(--sp-6);
}
.expense-entry-form.is-visible { display: block; animation: fieldOpen var(--dur-med) var(--ease-out); }

/* ---------- statement layout (P&L / Balance Sheet) ---------- */
.statement-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-5);
}
.statement-card {
  border-radius: var(--r-md);
  border: 1px solid var(--paper-100);
  background: var(--paper-0);
  overflow: hidden;
}
.statement-card__head {
  padding: var(--sp-4) var(--sp-5);
  background: var(--paper-50);
  border-bottom: 1px solid var(--paper-100);
  font-weight: 700;
  font-size: 14px;
  color: var(--ink-950);
}
.statement-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: var(--sp-3) var(--sp-5);
  border-bottom: 1px solid var(--paper-100);
  font-size: 13.5px;
}
.statement-row .amt { font-family: var(--font-mono); font-weight: 600; }
.statement-row.is-total { background: var(--paper-50); font-weight: 700; }
.statement-row.is-total .amt { font-size: 15px; }
.statement-row.is-net { background: var(--sage-100); color: var(--sage-600); font-weight: 700; }
.statement-row.is-net.is-deficit { background: var(--rust-100); color: var(--rust-600); }

@media (max-width: 800px) { .statement-grid { grid-template-columns: 1fr; } }
