.table-wrap {
  overflow-x: auto;
  margin-top: 4px;
}
table.ledger {
  width: 100%;
  border-collapse: collapse;
  font-variant-numeric: tabular-nums lining-nums;
}
table.ledger thead th {
  text-align: right;
  font-family: "Manrope", sans-serif;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--ink-3);
  padding: 14px 14px 10px;
  border-bottom: 1.5px solid var(--ink);
  white-space: nowrap;
  vertical-align: bottom;
}
table.ledger thead th:first-child { text-align: left; }
table.ledger thead th .sub {
  display: block;
  font-family: "Fraunces", serif;
  font-style: italic;
  font-weight: 300;
  font-variation-settings: "opsz" 14, "SOFT" 80;
  font-size: 12px;
  color: var(--muted);
  text-transform: none;
  letter-spacing: 0;
  margin-top: 2px;
}
table.ledger tbody td {
  padding: 14px 14px;
  border-bottom: 1px solid var(--rule);
  text-align: right;
  white-space: nowrap;
  vertical-align: middle;
}
table.ledger tbody tr:nth-child(odd) { background: rgba(255,250,230,0.32); }
table.ledger tbody tr:hover { background: rgba(169,51,36,0.05); }
table.ledger tbody tr:last-child td { border-bottom: 1.5px solid var(--ink); }

table.ledger tbody td.size {
  text-align: left;
  font-family: "Fraunces", serif;
  font-variation-settings: "opsz" 24, "SOFT" 30;
  font-weight: 400;
  font-size: 17px;
  color: var(--ink);
  letter-spacing: -0.005em;
  position: relative;
  padding-left: 18px;
}
table.ledger thead th:first-child,
table.ledger tbody td:first-child { padding-left: 18px; }

td.cost {
  font-family: "JetBrains Mono", monospace;
  font-size: 13px;
  color: var(--ink-3);
  font-weight: 500;
}
td.listing {
  font-family: "JetBrains Mono", monospace;
  font-size: 12px;
  color: var(--muted);
  font-style: italic;
}
td.fee {
  font-family: "JetBrains Mono", monospace;
  font-size: 13px;
  color: var(--gold);
  font-weight: 500;
}
td.sale {
  font-family: "Fraunces", serif;
  font-variation-settings: "opsz" 72, "SOFT" 100;
  font-style: italic;
  font-weight: 500;
  font-size: 26px;
  color: var(--ink);
  letter-spacing: -0.025em;
  line-height: 1;
}
td.sale .cell-edit { gap: 10px; justify-content: flex-end; }
td.profit { text-align: right; }

.cell-edit {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  justify-content: flex-end;
}
.cell-edit input {
  background: transparent;
  color: inherit;
  border: 1px solid transparent;
  border-radius: 2px;
  padding: 4px 8px;
  width: 92px;
  text-align: right;
  font: inherit;
  font-variant-numeric: tabular-nums lining-nums;
  outline: none;
  transition: border-color 0.15s, background 0.15s;
}
.cell-edit input:hover {
  border-color: var(--rule-2);
  background: rgba(255,250,230,0.4);
}
.cell-edit input:focus {
  border-color: var(--stamp);
  background: var(--paper-3);
}
.cell-edit .profit-amount {
  font-family: "JetBrains Mono", monospace;
  font-size: 14px;
  font-weight: 600;
  color: var(--sage);
  width: 78px;
}
.cell-edit .profit-pct {
  font-family: "Fraunces", serif;
  font-style: italic;
  font-variation-settings: "opsz" 24, "SOFT" 60;
  font-size: 16px;
  font-weight: 400;
  color: var(--ink-3);
  width: 52px;
}
.cell-edit .pct-sign,
.cell-edit .curr-sign {
  font-family: "Fraunces", serif;
  font-style: italic;
  font-size: 14px;
  color: var(--muted);
  margin-left: -2px;
}
.cell-edit .curr-sign {
  margin-right: -2px;
  margin-left: 0;
  color: var(--sage);
}
tr.overridden td.profit .curr-sign { color: var(--stamp); }

tr.overridden td.profit input {
  border-style: solid;
  border-color: var(--accent-2, var(--stamp-2));
  background: rgba(169,51,36,0.06);
}
tr.overridden td.sale .sale-value {
  color: var(--stamp);
  text-decoration: underline dotted var(--stamp-2);
  text-underline-offset: 3px;
}
tr.overridden td.profit .profit-amount,
tr.overridden td.profit .profit-pct {
  color: var(--stamp);
  border-color: var(--stamp-2);
  background: rgba(169,51,36,0.04);
}
td.sale { color: var(--ink); }
tr.overridden td.sale { color: var(--stamp); }

.reset-btn {
  background: transparent;
  color: var(--muted);
  border: 1px solid var(--rule-2);
  border-radius: 50%;
  width: 22px; height: 22px;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  padding: 0;
  display: inline-flex;
  align-items: center; justify-content: center;
  visibility: hidden;
  transition: all 0.2s;
}
tr.overridden .reset-btn { visibility: visible; color: var(--stamp); border-color: var(--stamp); }
.reset-btn:hover { background: var(--stamp); color: var(--paper); }

.fav-btn {
  background: none;
  border: none;
  color: var(--rule-2);
  font-size: 16px;
  cursor: pointer;
  padding: 0;
  margin-right: 10px;
  line-height: 1;
  vertical-align: -2px;
  transition: color 0.15s, transform 0.15s;
}
.fav-btn:hover { color: var(--stamp); transform: scale(1.2); }
.fav-btn.active { color: var(--stamp); }

.src-badge {
  display: inline-block;
  font-family: "JetBrains Mono", monospace;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  padding: 3px 6px;
  background: var(--paper-3);
  border: 1px solid currentColor;
  margin-right: 10px;
  vertical-align: 2px;
  line-height: 1;
  border-radius: 0;
  color: var(--ink-3);
}
.src-badge.mp { color: var(--gold); }
.src-badge.sg { color: var(--sage); }
.src-badge.wf { color: var(--ink-3); }
.src-badge.ps { color: var(--stamp); }

/* ─── Summary ─── */
.summary {
  margin-top: 40px;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0;
  border: 1px solid var(--ink);
}
.stat {
  padding: 18px 20px;
  border-right: 1px solid var(--rule-2);
  background: var(--paper-3);
  position: relative;
}
.stat:last-child { border-right: 0; }
.stat .k {
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 0.28em;
  color: var(--ink-3);
  font-weight: 700;
  margin-bottom: 4px;
}
.stat .v {
  font-family: "Fraunces", serif;
  font-variation-settings: "opsz" 72, "SOFT" 60;
  font-style: italic;
  font-weight: 400;
  font-size: 32px;
  line-height: 1.05;
  color: var(--ink);
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums lining-nums;
}
.stat .v .pct-after {
  font-size: 18px;
  color: var(--stamp);
  font-style: italic;
}
