/* Shared primitives for the flat, full-width ledger pages.
   Load after site.css and before each page's local overrides. */

/* Page frame -------------------------------------------------------------- */
body.ledger-page {
  font:14px/1.5 var(--font-sans);
  font-variant-numeric:tabular-nums;
}
body.ledger-page .ledger-shell { padding:16px var(--pad) 48px; }
body.ledger-page .snapshot-context {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:8px 18px;
  padding-bottom:11px;
  border-bottom:1px solid var(--line);
  color:var(--muted);
  font-size:11px;
}
body.ledger-page .snapshot-context strong { color:var(--text); }

/* Analytical view switcher ------------------------------------------------- */
body.ledger-page .view-tabs {
  display:flex;
  align-items:center;
  margin-top:14px;
}
body.ledger-page .view-tab {
  appearance:none;
  min-width:var(--ledger-view-tab-min-width, 150px);
  border:1px solid var(--line);
  border-radius:var(--control-radius);
  background:var(--ledger);
  color:var(--muted);
  min-height:var(--control-height);
  padding:0 var(--control-pad-x);
  font-family:inherit;
  font-size:var(--type-sm);
  font-weight:var(--weight-bold);
  line-height:1.2;
  cursor:pointer;
}
body.ledger-page .view-tab + .view-tab { border-left:0; }
body.ledger-page .view-tab[aria-selected=true] {
  border-color:var(--signal);
  background:var(--signal);
  color:#000;
}
body.ledger-page .view-tab:focus-visible { outline:2px solid var(--signal); outline-offset:2px; }
body.ledger-page .view-panel { padding-top:15px; }

/* Summary metrics --------------------------------------------------------- */
body.ledger-page .metric-strip {
  display:grid;
  grid-template-columns:1.15fr repeat(4,1fr);
  border:1px solid var(--line);
  background:var(--ledger);
}
body.ledger-page .metric {
  min-width:0;
  padding:13px 14px;
  border-right:1px solid var(--line);
}
body.ledger-page .metric:last-child { border-right:0; }
body.ledger-page .metric-label {
  color:var(--muted);
  font-size:var(--metric-label-size);
  font-weight:var(--weight-bold);
  letter-spacing:.4px;
  text-transform:uppercase;
}
body.ledger-page :where(.metric-value) {
  display:block;
  margin-top:4px;
  color:var(--text);
  font-size:var(--metric-value-size);
  font-weight:var(--weight-bold);
  line-height:1.1;
}
body.ledger-page .metric-note {
  display:block;
  margin-top:5px;
  color:var(--muted);
  font-size:var(--metric-note-size);
}

/* Ledger panels ----------------------------------------------------------- */
body.ledger-page .panel {
  min-width:0;
  border:1px solid var(--line);
  background:var(--ledger);
}
body.ledger-page .panel-head {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  min-height:42px;
  padding:10px 12px;
  border-bottom:1px solid var(--line);
}
body.ledger-page .panel-head h2,
body.ledger-page .panel-head h3 {
  margin:0;
  color:var(--text);
  font-size:14px;
}
body.ledger-page .panel-head span {
  color:var(--muted);
  font-size:10px;
  text-align:right;
}

/* Section headings and reusable notes ------------------------------------ */
body.ledger-page .section { margin-top:17px; }
body.ledger-page .section-head,
body.ledger-page .archive-head {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  padding-bottom:7px;
  border-bottom:1px solid var(--line);
}
body.ledger-page .section-head h2,
body.ledger-page .archive-head h2 {
  margin:0;
  color:var(--text);
  font-size:14px;
}
body.ledger-page .section-head span,
body.ledger-page .archive-head span {
  color:var(--muted);
  font-size:10px;
  text-align:right;
}
body.ledger-page .method-note {
  margin-top:12px;
  padding:10px 12px;
  border-left:3px solid var(--signal);
  background:var(--ledger);
  color:var(--muted);
  font-size:11px;
}
body.ledger-page .method-note strong { color:var(--text); }

/* Filtering toolbars ------------------------------------------------------ */
body.ledger-page .toolbar {
  display:grid;
  grid-template-columns:var(--ledger-toolbar-columns, 1fr);
  gap:8px;
  align-items:end;
  padding:10px;
  border:1px solid var(--line);
  border-top:0;
  background:var(--ledger);
}
body.ledger-page .filter-field {
  display:grid;
  gap:5px;
  min-width:0;
  color:var(--muted);
  font-size:9px;
  letter-spacing:.35px;
  text-transform:uppercase;
}
body.ledger-page .filter-control {
  width:100%;
  min-width:0;
  min-height:var(--control-height);
  border:1px solid var(--line);
  border-radius:var(--control-radius);
  background:#000;
  color:var(--text);
  padding:0 var(--control-pad-x);
  font-family:inherit;
  font-size:var(--type-xs);
  line-height:1.2;
}
body.ledger-page .check-filter,
body.ledger-page .repeat-filter {
  display:flex;
  align-items:center;
  gap:6px;
  height:34px;
  color:var(--text);
  font-size:10px;
  white-space:nowrap;
}
body.ledger-page .check-filter input,
body.ledger-page .repeat-filter input { accent-color:var(--signal); }

/* Shared actions ---------------------------------------------------------- */
body.ledger-page .reset-button,
body.ledger-page .more-button,
body.ledger-page .inspect-button,
body.ledger-page .close-button {
  appearance:none;
  border:1px solid var(--line);
  border-radius:0;
  background:#000;
  color:var(--text);
  cursor:pointer;
}
body.ledger-page .reset-button:hover,
body.ledger-page .more-button:hover,
body.ledger-page .inspect-button:hover,
body.ledger-page .close-button:hover {
  border-color:var(--signal);
  background:var(--signal);
  color:#000;
}
body.ledger-page .reset-button:focus-visible,
body.ledger-page .more-button:focus-visible,
body.ledger-page .inspect-button:focus-visible,
body.ledger-page .close-button:focus-visible {
  outline:2px solid var(--signal);
  outline-offset:2px;
}
/* Ledger tables ----------------------------------------------------------- */
body.ledger-page .table-wrap {
  border:1px solid var(--line);
  border-top:0;
}
body.ledger-page .data-table {
  table-layout:fixed;
}
body.ledger-page .table-status,
body.ledger-page .archive-status {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 1px 0;
  color:var(--muted);
  font-size:10px;
}
body.ledger-page .empty { padding:18px; color:var(--muted); }
body.ledger-page :where(.number) { text-align:right; white-space:nowrap; }
body.ledger-page .wallet-name,
body.ledger-page .entity-name {
  display:block;
  overflow:hidden;
  color:inherit;
  font-size:inherit;
  font-weight:inherit;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.ledger-page .wallet-meta,
body.ledger-page .entity-meta {
  display:block;
  margin-top:2px;
  overflow:hidden;
  color:var(--muted);
  font-size:inherit;
  font-weight:var(--weight-normal);
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.ledger-page .money-col { width:105px; text-align:right; }
body.ledger-page :where(.status) {
  display:inline-block;
  padding:3px 7px;
  border:1px solid var(--line);
  color:var(--muted);
  font-size:inherit;
  font-weight:var(--weight-normal);
  text-align:center;
  white-space:nowrap;
}
body.ledger-page :where(.type-label) {
  color:var(--tone,var(--muted));
  font-size:inherit;
  font-weight:var(--weight-normal);
}

/* Shared responsive collapse --------------------------------------------- */
@media (max-width:980px) {
  body.ledger-page .toolbar { grid-template-columns:var(--ledger-toolbar-columns-tablet, repeat(3,minmax(120px,1fr))); }
  body.ledger-page .toolbar .search-field { grid-column:var(--ledger-search-column-tablet, 1/-1); }
}

@media (max-width:680px) {
  body.ledger-page .metric-strip { grid-template-columns:1fr 1fr; }
  body.ledger-page .metric { border-bottom:1px solid var(--line); }
  body.ledger-page .metric:nth-child(even) { border-right:0; }
  body.ledger-page .metric:first-child { grid-column:1/-1; }
  body.ledger-page .toolbar { grid-template-columns:var(--ledger-toolbar-columns-mobile, 1fr 1fr); }
  body.ledger-page .toolbar .search-field { grid-column:var(--ledger-search-column-mobile, 1/-1); }
  body.ledger-page .view-tab { min-width:0; }
}
