/* Transaction launchpad and guided-entry workspace */
.page-content:has(.transaction-launchpad),
.page-content:has(.transaction-entry-workspace) { overflow-x: clip; }
.transaction-launchpad,
.transaction-entry-workspace { width: min(100%, 90rem); min-width: 0; max-width: 100%; margin: 0 auto; }
.transaction-launch-header,
.transaction-entry-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: .85rem; }
.transaction-launch-header h1,
.transaction-entry-header h1 { margin: .15rem 0 .3rem; font-size: clamp(1.7rem, 3vw, 2.35rem); letter-spacing: -.035em; }
.transaction-launch-header p:last-child,
.transaction-entry-header p:last-child { margin: 0; color: var(--muted); }
.transaction-header-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .6rem; }
.transaction-header-actions .transaction-header-action {
  min-height: 2.85rem;
  gap: .55rem;
  padding: .65rem .9rem;
  border-color: #c9d8d0;
  box-shadow: 0 1px 2px rgb(15 46 33 / 5%);
  white-space: nowrap;
}
.transaction-header-actions .transaction-header-action svg { width: 1.1rem; height: 1.1rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.transaction-header-actions .transaction-header-action--upcoming { color: #155e48; background: #f1faf5; border-color: #b9dccb; }
.transaction-header-actions .transaction-header-action:focus-visible { outline: 3px solid rgb(8 131 72 / 18%); outline-offset: 2px; }
.transaction-type-search { display: grid; align-items: center; gap: .65rem; margin-bottom: 1.15rem; padding: 0 .75rem; background: #fff; border: 1px solid #dbe4df; border-radius: .65rem; box-shadow: 0 2px 10px rgb(20 54 40 / 4%); grid-template-columns: auto 1fr auto; }
.transaction-type-search:focus-within { border-color: #79b491; box-shadow: 0 0 0 3px rgb(8 131 72 / 10%); }
.transaction-type-search > span { color: #687789; font-size: 1.25rem; }
.transaction-type-search input { min-height: 3rem; padding: 0; border: 0; box-shadow: none; }
.transaction-type-search input:focus { outline: 0; box-shadow: none; }
.transaction-type-search kbd { padding: .15rem .35rem; color: #687789; background: #f4f6f5; border: 1px solid #dde4e0; border-radius: .3rem; font-size: .65rem; }
.transaction-launch-layout { display: grid; align-items: start; gap: 1rem; grid-template-columns: minmax(0, 1fr) minmax(16rem, 20rem); }
.transaction-launch-main > h2 { margin: 0 0 .75rem; font-size: 1rem; }
.transaction-type-grid { display: grid; gap: .8rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.transaction-type-card { display: grid; min-width: 0; min-height: 14rem; align-content: start; gap: .55rem; padding: 1rem; background: #fff; border: 1px solid #dfe6e2; border-radius: .8rem; box-shadow: 0 4px 14px rgb(20 54 40 / 5%); transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.transaction-type-card:hover { border-color: #9fcab0; box-shadow: 0 10px 26px rgb(20 54 40 / 10%); transform: translateY(-1px); }
.transaction-type-card[hidden] { display: none; }
.transaction-type-card h3 { margin: .15rem 0 0; font-size: .9rem; }
.transaction-type-card p { min-height: 2.5rem; margin: 0; color: #516072; font-size: .7rem; }
.transaction-type-card small { margin-top: auto; color: #758190; font-size: .6rem; line-height: 1.45; }
.transaction-type-card > .button { width: 100%; min-height: 2.35rem; margin-top: auto; }
.transaction-type-icon { display: grid; width: 2.55rem; height: 2.55rem; place-items: center; color: #087a44; background: #e3f3e9; border-radius: 50%; }
.transaction-type-icon svg { width: 1.35rem; height: 1.35rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.transaction-type-bills .transaction-type-icon { color: #286bc0; background: #e8f0fc; }
.transaction-type-lending .transaction-type-icon { color: #355c8a; background: #eaf0f7; }
.transaction-type-investments .transaction-type-icon { color: #087f8c; background: #e1f4f5; }
.transaction-type-assets .transaction-type-icon { color: #b67500; background: #fff1d0; }
.transaction-type-advanced { min-height: 0; grid-column: 1 / -1; grid-template-columns: minmax(0, 1fr); gap: .75rem; }
.transaction-advanced-intro { display: grid; min-width: 0; align-items: start; gap: .7rem; grid-template-columns: auto minmax(0, 1fr); }
.transaction-advanced-intro h3 { margin: .05rem 0 .2rem; }
.transaction-advanced-intro p { min-height: 0; margin: 0; }
.transaction-type-advanced .transaction-card-actions { display: grid; margin: 0; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.transaction-type-advanced .transaction-card-actions a { display: grid; min-width: 0; min-height: 2.35rem; place-items: center; }
.transaction-card-actions { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: auto; }
.transaction-card-actions a { flex: 1 1 auto; padding: .45rem .55rem; color: var(--green-800); background: #f4faf6; border: 1px solid #b8d9c5; border-radius: .42rem; font-size: .65rem; font-weight: 750; text-align: center; text-decoration: none; }
.transaction-card-actions a:hover,
.transaction-card-actions a:focus-visible { color: #fff; background: var(--green-700); border-color: var(--green-700); }
.transaction-type-people { min-height: 0; grid-column: span 2; }
.purchase-agency-paths { display: grid; gap: .55rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.purchase-agency-paths section { display: grid; min-width: 0; gap: .3rem; padding: .65rem; background: #f8fbf9; border: 1px solid #dce8e1; border-radius: .58rem; }
.purchase-agency-paths strong { color: #174831; font-size: .67rem; }
.purchase-agency-paths section > span { min-height: 2rem; color: #68776e; font-size: .58rem; line-height: 1.4; }
.purchase-agency-paths .transaction-card-actions { margin-top: .2rem; }
.purchase-agency-paths .transaction-card-actions a { padding-inline: .38rem; font-size: .58rem; }
.transaction-search-empty { padding: 2rem; color: var(--muted); text-align: center; }
.transaction-launch-rail { display: grid; align-content: start; gap: .8rem; }
.transaction-rail-card { min-height: 0; margin: 0; padding: .9rem; }
.transaction-rail-card h2 { margin: 0; font-size: .82rem; }
.transaction-rail-card .section-heading { margin-bottom: .4rem; }
.transaction-rail-card .section-heading a { font-size: .62rem; }
.transaction-draft-list,
.transaction-recommendations { display: grid; }
.transaction-draft-list > a { display: grid; min-width: 0; align-items: center; gap: .5rem; padding: .65rem 0; color: var(--ink); border-bottom: 1px solid var(--border); text-decoration: none; grid-template-columns: minmax(0, 1fr) auto; }
.transaction-draft-list > a > span:first-child { display: grid; min-width: 0; }
.transaction-draft-list strong { overflow: hidden; font-size: .68rem; text-overflow: ellipsis; white-space: nowrap; }
.transaction-draft-list small { color: var(--muted); font-size: .57rem; }
.transaction-draft-list .status { font-size: .55rem; }
.transaction-recommendations a { display: grid; align-items: center; gap: .55rem; padding: .65rem 0; color: var(--ink); border-bottom: 1px solid var(--border); text-decoration: none; grid-template-columns: 1.7rem 1fr; }
.transaction-recommendations svg { width: 1rem; height: 1rem; color: #2870bb; fill: none; stroke: currentColor; stroke-width: 1.8; }
.transaction-recommendations span { display: grid; }
.transaction-recommendations strong { font-size: .67rem; }
.transaction-recommendations small { color: var(--muted); font-size: .57rem; }
.transaction-help-card { display: grid; align-items: start; gap: .7rem; padding: .9rem; color: #174831; background: #eaf6ee; border: 1px solid #c7e0d0; border-radius: .75rem; grid-template-columns: auto 1fr; }
.transaction-help-card strong { font-size: .72rem; }
.transaction-help-card p { margin: .2rem 0 0; color: #526d5e; font-size: .62rem; }
.transaction-back-link { display: inline-flex; margin-bottom: .8rem; color: #344c40; font-size: .72rem; font-weight: 750; text-decoration: none; }
.transaction-progress { display: grid; margin: 0 0 1rem; padding: 0; list-style: none; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.transaction-progress li { position: relative; display: flex; align-items: center; gap: .45rem; color: #7a8790; font-size: .67rem; }
.transaction-progress li:not(:last-child)::after { height: 1px; flex: 1; margin-right: .6rem; background: #d8dfdb; content: ""; }
.transaction-progress span { position: relative; z-index: 1; display: grid; width: 1.35rem; height: 1.35rem; place-items: center; background: #fff; border: 1px solid #cfd9d3; border-radius: 50%; font-size: .58rem; }
.transaction-progress li[aria-current="step"],
.transaction-progress .is-complete { color: #126f42; }
.transaction-progress li[aria-current="step"] span,
.transaction-progress .is-complete span { color: #fff; background: #16814b; border-color: #16814b; }
.transaction-entry-card { padding: clamp(1rem, 2vw, 1.35rem); }
.transaction-entry-card .form-grid { display: grid; align-items: end; gap: .8rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.transaction-entry-card .form-grid > label { min-width: 0; }
.transaction-entry-card .form-grid > label > input,
.transaction-entry-card .form-grid > label > select,
.transaction-entry-card .form-grid > label > textarea,
.transaction-entry-card .form-grid > label > .field-help { width: 100%; }
.transaction-entry-card .form-wide { grid-column: 1 / -1; }
.agency-accounting-note { display: flex; align-items: flex-start; justify-content: space-between; gap: .8rem; padding: .8rem .9rem; color: #175a39; background: #f1f9f4; border: 1px solid #cfe5d7; border-radius: .72rem; }
.agency-accounting-note strong { font-size: .7rem; }
.agency-accounting-note span { color: #587064; font-size: .63rem; text-align: right; }
.agency-purchase-summary { display: grid; gap: .6rem; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: .85rem; background: #f7faf8; border: 1px solid #d8e4dd; border-radius: .75rem; }
.agency-purchase-summary > div { display: grid; gap: .25rem; min-width: 0; }
.agency-purchase-summary span { color: var(--muted); font-size: .6rem; }
.agency-purchase-summary strong { overflow: hidden; font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
.agency-purchase-summary strong.is-warning { color: #b42318; }
.agency-return-summary { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: .82rem .9rem; background: #f1f9f4; border: 1px solid #cfe5d7; border-radius: .72rem; }
.agency-return-summary span { color: #587064; font-size: .63rem; }
.agency-return-summary strong { color: #175a39; font-size: .76rem; }
.agency-return-summary strong.is-warning { color: #b42318; }
.transaction-timing-choice { display: grid; gap: .65rem; padding: .8rem; border: 1px solid #d7e2dc; border-radius: .75rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.transaction-timing-choice legend { padding: 0 .25rem; color: var(--ink); font-size: .76rem; font-weight: 800; }
.transaction-timing-choice label { display: flex; min-width: 0; align-items: flex-start; gap: .55rem; padding: .7rem; background: #f8fbf9; border: 1px solid #dce6e0; border-radius: .6rem; cursor: pointer; }
.transaction-timing-choice label:has(input:checked) { background: #eaf6ee; border-color: #80b99a; box-shadow: 0 0 0 2px rgb(22 129 75 / 8%); }
.transaction-timing-choice input { width: auto; min-height: 0; margin-top: .15rem; }
.transaction-timing-choice label > span { display: grid; gap: .15rem; }
.transaction-timing-choice strong { font-size: .72rem; }
.transaction-timing-choice small { color: var(--muted); font-size: .62rem; line-height: 1.4; }
.transaction-mode-fields.mixed-receivable-fields { align-items: start; }
.mixed-receivable-help { margin: -.35rem 0 0; }
.mixed-derived-field { display: grid; gap: .25rem; min-width: 0; }
.mixed-derived-field > span { font-weight: 700; }
.mixed-derived-field > output { min-height: 3.25rem; display: flex; align-items: center; padding: 0 .95rem; border: 1px solid #d5ddd9; border-radius: .65rem; background: #f5f8f6; font-weight: 700; }
.mixed-derived-field > small { color: var(--muted); font-size: .82rem; }
.mixed-receivable-summary { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; padding: .85rem; border: 1px solid #d7e2dc; border-radius: .7rem; background: #f8fbf9; }
.mixed-receivable-summary div { display: grid; gap: .2rem; }
.mixed-receivable-summary span { color: var(--muted); font-size: .65rem; }
.mixed-receivable-summary strong { font-size: .78rem; }
.mixed-receivable-summary p { grid-column: 1 / -1; margin: 0; color: var(--muted); font-size: .65rem; }
.mixed-receivable-summary p[data-state="success"] { color: #08783e; }
.mixed-receivable-summary p[data-state="error"] { color: #a33a31; }
.transaction-mode-fields { display: grid; align-items: end; gap: .8rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.transaction-mode-fields[hidden], [data-paid-now-only][hidden] { display: none !important; }
.transaction-mode-fields > label { display: grid; min-width: 0; gap: .25rem; }
.transaction-empty-payables { padding: 1rem; color: #5b4a18; background: #fff8df; border: 1px solid #ead791; border-radius: .75rem; }
.transaction-empty-payables p { margin: .25rem 0 .45rem; color: #6b6250; }
.loan-principal-field { align-self: stretch; }
.loan-full-balance-button { width: fit-content; min-height: 2rem; margin-top: .15rem; padding: .35rem .55rem; font-size: .62rem; }
.loan-repayment-total { display: grid; align-items: start; gap: 1rem 1.5rem; padding: 1rem; color: #163d2a; background: linear-gradient(135deg, #f1faf5, #fff); border: 1px solid #c9e2d3; border-radius: .8rem; grid-template-columns: minmax(0, 1fr) minmax(18rem, .9fr); }
.loan-repayment-total > div > span { color: #087746; font-size: .62rem; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.loan-repayment-total h2 { margin: .2rem 0 .35rem; font-size: 1rem; }
.loan-repayment-total p { margin: 0; color: #5b7064; font-size: .66rem; line-height: 1.5; }
.loan-repayment-total dl { display: grid; gap: .35rem; margin: 0; }
.loan-repayment-total dl > div { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; padding: .28rem 0; color: #53675c; font-size: .66rem; }
.loan-repayment-total dt,
.loan-repayment-total dd { margin: 0; }
.loan-repayment-total dd { color: var(--ink); font-weight: 800; text-align: right; }
.loan-repayment-total .loan-repayment-total-row { margin-top: .2rem; padding-top: .55rem; color: #087746; border-top: 1px solid #cfe3d6; font-weight: 850; }
.loan-repayment-total .loan-repayment-total-row dd { color: #087746; font-size: 1rem; }
.transaction-planning-notice { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem; color: #5d4816; background: #fff8df; border: 1px solid #ead791; border-radius: .7rem; }
.transaction-planning-notice > div { display: grid; gap: .2rem; }
.transaction-planning-notice strong { font-size: .72rem; }
.transaction-planning-notice span { color: #6b6250; font-size: .62rem; }
.transaction-planning-notice a { flex: 0 0 auto; color: #765800; font-size: .65rem; font-weight: 800; }
.transaction-context-help,
.transaction-optional-section { min-width: 0; overflow: hidden; border: 1px solid #dbe5df; border-radius: .72rem; background: #fbfdfc; }
.transaction-optional-section[open] { position: relative; z-index: 5; overflow: visible; }
.transaction-context-help { margin-bottom: 1rem; }
.transaction-context-help > summary,
.transaction-optional-section > summary { display: flex; min-height: 2.8rem; align-items: center; justify-content: space-between; gap: 1rem; padding: .7rem .85rem; color: #1d5035; cursor: pointer; font-size: .72rem; font-weight: 800; list-style: none; }
.transaction-context-help > summary::-webkit-details-marker,
.transaction-optional-section > summary::-webkit-details-marker { display: none; }
.transaction-context-help > summary::after,
.transaction-optional-section > summary::after { flex: 0 0 auto; color: #5f7669; content: "+"; font-size: 1rem; font-weight: 500; }
.transaction-context-help[open] > summary::after,
.transaction-optional-section[open] > summary::after { content: "−"; }
.transaction-context-content,
.transaction-optional-content { padding: .85rem; border-top: 1px solid #e3eae6; background: #fff; }
.transaction-context-content p { margin: 0; color: #53655b; font-size: .7rem; line-height: 1.55; }
.transaction-context-content p + p { margin-top: .55rem; }
.transaction-context-content .workflow-help { margin: 0; padding: 0; background: transparent; border: 0; }
.transaction-context-content .workflow-help p { margin: 0; }
.transaction-context-content .workflow-help p + p { margin-top: .55rem; }
.transaction-optional-section > summary > span { min-width: 0; }
.transaction-optional-section > summary > small { margin-left: auto; color: var(--muted); font-size: .61rem; font-weight: 600; }
.transaction-fee-details { grid-column: 1 / -1; }
.transaction-optional-content.form-grid { align-items: end; }
.transaction-party-role-grid { display: grid; align-items: start; gap: .8rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.transaction-party-role-grid > .transaction-party-role-picker:only-child { grid-column: 1 / -1; }
.transaction-people-workspace { display: grid; min-width: 0; gap: .9rem; }
.transaction-party-role-grid { grid-template-columns: 1fr; }
.transaction-people-details > .transaction-optional-content { display: grid; gap: .8rem; }
.transaction-people-details .transaction-party-card { padding: 0; border: 0; box-shadow: none; }
.transaction-party-card {
  position: relative;
  min-width: 0;
  padding: 1rem;
  background: linear-gradient(145deg, #fff, #fbfdfc);
  border: 1px solid #d8e5de;
  border-radius: .9rem;
  box-shadow: 0 4px 16px rgb(24 58 42 / 4%);
}
.transaction-party-card-header {
  display: grid;
  min-width: 0;
  align-items: center;
  gap: .75rem;
  margin-bottom: .9rem;
  grid-template-columns: 2.8rem minmax(0, 1fr) auto;
}
.transaction-party-card-icon {
  display: grid;
  width: 2.8rem;
  height: 2.8rem;
  place-items: center;
  color: #07814c;
  background: #def5e8;
  border-radius: .7rem;
}
.transaction-party-card-icon svg { width: 1.35rem; height: 1.35rem; fill: none; stroke: currentcolor; stroke-width: 1.8; }
.transaction-party-card-header > div { min-width: 0; }
.transaction-party-card-header > div > strong { display: block; color: var(--ink); font-size: 1rem; }
.transaction-party-card-header p { margin: .18rem 0 0; color: var(--muted); font-size: .72rem; line-height: 1.45; }
.transaction-party-optional { align-self: start; padding: .35rem .65rem; color: #176b4b; background: #e9f7f0; border-radius: 999px; font-size: .66rem; font-weight: 750; }
.transaction-party-card-layout { display: grid; min-width: 0; align-items: start; gap: 1rem; grid-template-columns: minmax(0, 2fr) minmax(13rem, 1fr); }
.transaction-party-card-control { display: grid; min-width: 0; gap: .4rem; }
.transaction-party-card-control > label { display: grid; min-width: 0; gap: .3rem; }
.transaction-party-card-control .searchable-select-input:focus { border-color: #43b985; box-shadow: 0 0 0 3px rgb(67 185 133 / 12%); }
.transaction-party-manage { width: fit-content; color: #176b4b; font-size: .66rem; font-weight: 750; }
.transaction-party-examples { display: flex; min-width: 0; gap: .7rem; padding: .85rem; color: #315c4d; background: linear-gradient(135deg, #f0f8f4, #edf7f3); border-radius: .75rem; }
.transaction-party-examples > span { font-size: 1.1rem; }
.transaction-party-examples strong { color: #07814c; font-size: .7rem; }
.transaction-party-examples p { margin: .25rem 0 0; font-size: .66rem; line-height: 1.55; }
.transaction-party-card > .transaction-counterparty-new { margin-top: .9rem; }
.transaction-people-section .transaction-counterparty-picker { margin: 0; padding: .8rem; background: #fff; border-color: #dbe5df; border-radius: .65rem; }
.transaction-people-section .transaction-counterparty-heading { display: grid; gap: .35rem; }
.transaction-counterparty-heading-action { display: flex; min-height: 1.35rem; align-items: end; }
.transaction-counterparty-heading-action a { justify-self: start; }
.transaction-supporting-content { display: grid; gap: .9rem; }
.transaction-supporting-content > label { display: grid; gap: .3rem; }
.transaction-supporting-content .attachment-upload { margin: 0; }
.transaction-form-actions { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin: 1rem -1.35rem -1.35rem; padding: .9rem 1.35rem; background: #fff; border-top: 1px solid var(--border); }
.transaction-form-actions-primary { display: flex; flex-wrap: wrap; gap: .6rem; }
.transaction-device-save { max-width: 19rem; text-align: right; }
.transaction-device-save > summary { color: #37624b; cursor: pointer; font-size: .65rem; font-weight: 750; }
.transaction-device-save p { margin: .4rem 0 .55rem; color: var(--muted); font-size: .58rem; line-height: 1.45; }
.transaction-device-save button { min-height: 2.15rem; padding: .38rem .65rem; }
#manual-account-balance { margin: 0; padding: .8rem; background: #f7faf8; border-color: #dce6e0; box-shadow: none; }
#manual-account-balance p { margin: .2rem 0 0; color: var(--muted); }
.transaction-preview-card { margin-top: .9rem; }

@media (max-width: 1180px) {
  .transaction-launch-layout { grid-template-columns: 1fr; }
  .transaction-launch-rail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .transaction-help-card { grid-column: 1 / -1; }
}
@media (max-width: 900px) {
  .transaction-type-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .transaction-type-advanced { grid-column: 1 / -1; }
  .transaction-type-advanced .transaction-card-actions { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 650px) {
  .page-content:has(.transaction-launchpad),
  .page-content:has(.transaction-entry-workspace) { width: 100%; max-width: 100%; overflow-x: clip; padding: .75rem; overscroll-behavior-x: none; }
  .transaction-entry-card,
  .transaction-entry-card form,
  .transaction-entry-card .form-grid,
  .transaction-entry-card .form-grid > * { min-width: 0; max-width: 100%; }
  .transaction-launch-header,
  .transaction-entry-header { display: grid; }
  .transaction-header-actions,
  .transaction-header-actions .button,
  .transaction-entry-header .inline,
  .transaction-entry-header .button { width: 100%; }
  .transaction-type-grid,
  .transaction-launch-rail { grid-template-columns: 1fr; }
  .transaction-type-people { grid-column: 1; }
  .purchase-agency-paths { grid-template-columns: 1fr; }
  .transaction-type-advanced { display: grid; grid-template-columns: 1fr; }
  .transaction-type-advanced .transaction-card-actions { grid-template-columns: 1fr; }
  .transaction-help-card { grid-column: 1; }
  .transaction-entry-card .form-grid { grid-template-columns: 1fr; }
  .transaction-entry-card .form-wide { grid-column: 1; }
  .agency-accounting-note { flex-direction: column; }
  .agency-accounting-note span { text-align: left; }
  .agency-purchase-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .agency-return-summary { align-items: flex-start; flex-direction: column; }
  .transaction-timing-choice, .transaction-mode-fields, .mixed-receivable-summary { grid-template-columns: 1fr; }
  .transaction-planning-notice { align-items: flex-start; flex-direction: column; }
  .transaction-party-role-grid { grid-template-columns: 1fr; }
  .transaction-party-card-layout { grid-template-columns: 1fr; }
  .transaction-party-card-header { align-items: start; grid-template-columns: 2.6rem minmax(0, 1fr); }
  .transaction-party-card-icon { width: 2.6rem; height: 2.6rem; }
  .transaction-party-optional { grid-column: 2; justify-self: start; }
  .loan-repayment-total { grid-template-columns: 1fr; }
  .transaction-party-role-grid > .transaction-party-role-picker:only-child { grid-column: 1; }
  .transaction-form-actions { align-items: stretch; flex-direction: column; margin-right: -1rem; margin-left: -1rem; padding: .8rem 1rem; }
  .transaction-form-actions-primary { display: grid; width: 100%; }
  .transaction-form-actions-primary button { width: 100%; }
  .transaction-device-save { max-width: none; text-align: left; }
  .transaction-progress strong { font-size: .58rem; }
}

/* Compact all-transactions register */
.page-content:has(.transaction-register-page) { width: min(100%, 100rem); padding-block: 1.25rem; }
.transaction-register-page { display: grid; width: 100%; min-width: 0; gap: .9rem; }
.transaction-register-hero { display: flex; min-width: 0; align-items: end; justify-content: space-between; gap: 1rem; padding: .1rem .15rem .25rem; }
.transaction-register-hero h1 { margin: .35rem 0 .18rem; }
.transaction-register-hero p { margin: 0; color: var(--muted); font-size: .82rem; }
.transaction-register-hero > .button { flex: 0 0 auto; }
.transaction-register-hero > .button svg { width: 1rem; height: 1rem; }
.transaction-register-back { color: var(--green-700); font-size: .72rem; font-weight: 750; text-decoration: none; }
.transaction-register-metrics { display: grid; min-width: 0; gap: .75rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.transaction-register-metric { display: grid; min-width: 0; align-items: center; gap: .72rem; padding: .8rem .9rem; background: #fff; border: 1px solid var(--border); border-radius: .75rem; box-shadow: var(--shadow-sm); grid-template-columns: auto minmax(0, 1fr); }
.transaction-register-metric > span { display: grid; width: 2.65rem; height: 2.65rem; place-items: center; color: #087746; background: #e6f4eb; border-radius: .62rem; }
.transaction-register-metric > span svg { width: 1.25rem; height: 1.25rem; }
.transaction-register-metric > div { display: grid; min-width: 0; }
.transaction-register-metric small { color: #526159; font-size: .63rem; font-weight: 750; }
.transaction-register-metric strong { overflow: hidden; margin-top: .04rem; font-size: 1.05rem; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.transaction-register-metric p { margin: .08rem 0 0; color: var(--muted); font-size: .58rem; }
.transaction-register-metric.metric-review > span { color: #b86600; background: #fff0dd; }
.transaction-register-metric.metric-draft > span { color: #286ec7; background: #e8f0fd; }
.transaction-register-metric.metric-month > span { color: #087746; background: #e6f4eb; }
.transaction-filter-panel,
.transaction-register-card { min-width: 0; background: #fff; border: 1px solid var(--border); border-radius: .8rem; box-shadow: var(--shadow-sm); }
.transaction-filter-panel { padding: .85rem 1rem 1rem; }
.transaction-filter-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .7rem; }
.transaction-filter-heading h2,
.transaction-register-card-heading h2 { margin: 0; font-size: .86rem; }
.transaction-filter-heading p,
.transaction-register-card-heading p { margin: .08rem 0 0; color: var(--muted); font-size: .62rem; }
.transaction-filter-toggle { display: inline-flex; flex: 0 0 auto; align-items: center; gap: .5rem; color: #445249; font-size: .67rem; font-weight: 700; cursor: pointer; }
.transaction-filter-toggle input { position: absolute; width: 1px; height: 1px; min-height: 0; opacity: 0; }
.transaction-filter-toggle > span { position: relative; width: 2rem; height: 1.08rem; background: #aeb9b3; border-radius: 999px; transition: background .14s ease; }
.transaction-filter-toggle > span::after { position: absolute; top: .14rem; left: .15rem; width: .8rem; height: .8rem; content: ""; background: #fff; border-radius: 50%; box-shadow: 0 1px 3px rgb(0 0 0 / 18%); transition: transform .14s ease; }
.transaction-filter-toggle input:checked + span { background: var(--green-700); }
.transaction-filter-toggle input:checked + span::after { transform: translateX(.9rem); }
.transaction-filter-toggle input:focus-visible + span { outline: 3px solid rgb(35 128 82 / 28%); outline-offset: 2px; }
.transaction-filter-grid { display: grid; min-width: 0; align-items: end; gap: .65rem; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.transaction-filter-grid > label { display: grid; min-width: 0; gap: .22rem; color: #35463c; font-size: .62rem; }
.transaction-filter-grid input,
.transaction-filter-grid select { width: 100%; min-width: 0; max-width: 100%; min-height: 2.35rem; font-size: .7rem; }
.transaction-filter-grid select { overflow: hidden; text-overflow: ellipsis; }
.transaction-filter-grid .searchable-select { width: 100%; min-width: 0; max-width: 100%; }
.transaction-search-field { position: relative; display: block; }
.transaction-search-field svg { position: absolute; z-index: 1; top: 50%; left: .65rem; width: .85rem; height: .85rem; color: #7b8881; transform: translateY(-50%); pointer-events: none; }
.transaction-search-field input { padding-left: 2rem; }
.transaction-filter-actions { display: flex; min-width: 0; justify-content: flex-end; gap: .45rem; margin-top: .05rem; padding-top: .7rem; border-top: 1px solid var(--border); grid-column: 1 / -1; }
.transaction-filter-actions .button,
.transaction-filter-actions button { min-height: 2.35rem; padding: .42rem .7rem; font-size: .68rem; white-space: nowrap; }
.transaction-register-card { overflow: visible; }
.transaction-register-card > form { min-width: 0; }
.transaction-register-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; border-bottom: 1px solid var(--border); }
.transaction-register-card-heading > span { padding: .2rem .5rem; color: #526159; background: #f0f4f2; border-radius: 999px; font-size: .6rem; font-weight: 750; white-space: nowrap; }
.journal-selection-bar { display: flex; min-height: 3rem; align-items: center; gap: .7rem; padding: .55rem 1rem; color: var(--muted); background: #fbfdfc; border-bottom: 1px solid var(--border); font-size: .68rem; }
.journal-selection-bar.has-selection { color: #175d3a; background: #eef8f2; }
.journal-selection-bar .checkbox-label { flex: 0 0 auto; font-size: .68rem; }
.journal-selection-guidance { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.journal-selection-bar .selection-clear { margin-left: auto; }
.journal-batch-shelf { display: grid; border-bottom: 1px solid var(--border); grid-template-columns: repeat(3, minmax(0, 1fr)); }
.journal-batch-shelf[hidden],
.journal-batch-shelf > section[hidden] { display: none !important; }
.journal-batch-shelf > section { position: relative; display: grid; min-width: 0; align-items: center; gap: .55rem; padding: .7rem .8rem; border-right: 1px solid var(--border); grid-template-columns: auto minmax(0, 1fr) auto; }
.journal-batch-shelf > section:last-child { border-right: 0; }
.journal-action-icon { display: grid; width: 2rem; height: 2rem; place-items: center; color: #087746; background: #e6f4eb; border-radius: .5rem; }
.journal-action-icon svg { width: 1rem; height: 1rem; }
.journal-batch-shelf section > div:nth-child(2) { display: grid; min-width: 0; }
.journal-batch-shelf section > div:nth-child(2) strong { font-size: .67rem; }
.journal-batch-shelf section > div:nth-child(2) small { overflow: hidden; color: var(--muted); font-size: .56rem; text-overflow: ellipsis; white-space: nowrap; }
.journal-batch-shelf button,
.journal-batch-shelf .button { min-height: 2.2rem; padding: .38rem .6rem; font-size: .62rem; white-space: nowrap; }
.journal-action-buttons { display: flex; align-items: center; gap: .35rem; }
.journal-action-details,
.transaction-row-menu { position: relative; margin: 0; }
.journal-action-details > summary { list-style: none; }
.journal-action-details > summary::-webkit-details-marker,
.transaction-row-menu > summary::-webkit-details-marker { display: none; }
.journal-action-popover { position: absolute; z-index: 15; top: calc(100% + .45rem); right: 0; display: grid; width: 16rem; gap: .55rem; padding: .7rem; background: #fff; border: 1px solid var(--border); border-radius: .65rem; box-shadow: var(--shadow); }
.journal-action-popover label { display: grid; gap: .2rem; font-size: .62rem; }
.journal-action-popover input { width: 100%; min-height: 2.25rem; font-size: .68rem; }
.transaction-register-table-wrap { width: 100%; max-width: 100%; overflow: visible; }
.transaction-register-table { width: 100%; min-width: 0; table-layout: fixed; }
.transaction-register-table th { padding: .55rem .65rem; font-size: .6rem; }
.transaction-register-table td { padding: .62rem .65rem; vertical-align: middle; font-size: .68rem; }
.transaction-register-table tbody tr:last-child td { border-bottom: 0; }
.transaction-register-select { width: 2rem; color: #9aa49f; text-align: center; }
.transaction-register-table th:first-child { width: 2.4rem; }
.transaction-register-date-heading,
.transaction-register-date { width: 7rem; }
.transaction-register-date { overflow: hidden; color: #35463c; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.transaction-register-description { min-width: 0; }
.transaction-register-description > a { display: block; overflow: hidden; max-width: 22rem; color: var(--ink); font-weight: 750; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.transaction-register-description > a:hover { color: var(--green-700); text-decoration: underline; }
.transaction-register-description small,
.transaction-register-origin small,
.transaction-register-account small { display: block; color: var(--muted); font-size: .56rem; font-weight: 500; }
.transaction-register-account-heading,
.transaction-register-account-cell { width: 18%; }
.transaction-register-account { display: grid; min-width: 0; align-items: center; gap: .5rem; grid-template-columns: auto minmax(0, 1fr); }
.transaction-register-account > span:last-child { min-width: 0; }
.transaction-register-account strong { display: block; overflow: hidden; max-width: 100%; font-size: .66rem; text-overflow: ellipsis; white-space: nowrap; }
.transaction-register-account-icon { display: grid; width: 1.75rem; height: 1.75rem; place-items: center; color: #087746; background: #e6f4eb; border-radius: .42rem; }
.transaction-register-account-icon svg { width: .9rem; height: .9rem; }
.transaction-register-account.account-class-expense .transaction-register-account-icon { color: #355c8a; background: #eaf0f7; }
.transaction-register-account.account-class-income .transaction-register-account-icon { color: #087746; background: #e6f4eb; }
.transaction-register-account.account-class-liability .transaction-register-account-icon { color: #4b4b4b; background: #f5f6f7; }
.transaction-register-origin-heading,
.transaction-register-origin { width: 15%; }
.transaction-register-origin { overflow: hidden; text-overflow: ellipsis; }
.transaction-register-origin strong { display: block; overflow: hidden; font-size: .65rem; text-overflow: ellipsis; white-space: nowrap; }
.transaction-register-amount-heading,
.transaction-register-amount { width: 8.5rem; }
.transaction-register-amount { min-width: 0; overflow: hidden; font-weight: 800; text-align: right; text-overflow: ellipsis; white-space: nowrap; }
.transaction-register-status-heading,
.transaction-register-status { width: 6.7rem; }
.transaction-register-actions-heading,
.transaction-register-actions { width: 3.5rem; }
.transaction-register-actions { position: relative; overflow: visible; text-align: center; }
.transaction-register-responsive-meta { display: none; }
.transaction-row-menu { display: inline-block; text-align: left; }
.transaction-row-menu > summary { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; color: #32463b; border-radius: 50%; font-size: 1.05rem; line-height: 1; list-style: none; }
.transaction-row-menu > summary:hover,.transaction-row-menu[open] > summary { color: var(--green-700); background: var(--green-50); }
.transaction-row-menu > div { position: absolute; z-index: 30; top: calc(100% - .25rem); right: .5rem; display: grid; width: 11.5rem; padding: .35rem; background: #fff; border: 1px solid var(--border); border-radius: .55rem; box-shadow: 0 12px 32px rgb(18 47 32 / 18%); }
.transaction-row-menu a,.transaction-row-menu button { display: flex; width: 100%; min-height: 2.15rem; align-items: center; justify-content: flex-start; padding: .4rem .55rem; color: var(--ink); background: transparent; border: 0; border-radius: .38rem; font-size: .62rem; font-weight: 700; text-align: left; text-decoration: none; }
.transaction-row-menu a:hover,.transaction-row-menu button:hover { color: var(--green-700); background: var(--green-50); transform: none; }
.transaction-row-menu .transaction-menu-danger { color: #b32932; }
.transaction-row-menu .transaction-menu-danger:hover { color: #a42029; background: #fff0f1; }
.transaction-register-empty { padding: 2rem !important; color: var(--muted); text-align: center; }
.transaction-register-footer { display: flex; min-height: 3.2rem; align-items: center; justify-content: space-between; gap: 1rem; padding: .55rem 1rem; color: var(--muted); border-top: 1px solid var(--border); font-size: .62rem; }
.transaction-register-footer .pagination-controls { margin: 0; }
.transaction-register-footer .pagination-controls > a,
.transaction-register-footer .pagination-controls > span,
.transaction-register-footer .pagination-jump input,
.transaction-register-footer .pagination-jump button { min-height: 2rem; padding: .28rem .5rem; font-size: .62rem; }
.transaction-register-footer .pagination-jump label { font-size: .62rem; }
.status-draft { color: #215fae; background: #e4efff; }
.status-imported,
.status-needs_review,
.status-submitted { color: #8b5600; background: #fff0d5; }

@media (max-width: 1180px) {
  .transaction-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .transaction-filter-search { grid-column: 1 / -1; }
  .journal-batch-shelf { grid-template-columns: 1fr; }
  .journal-batch-shelf > section { border-right: 0; border-bottom: 1px solid var(--border); }
  .journal-batch-shelf > section:last-child { border-bottom: 0; }
  .transaction-register-account-heading,
  .transaction-register-account-cell,
  .transaction-register-origin-heading,
  .transaction-register-origin { display: none; }
  .transaction-register-responsive-meta { display: flex; overflow: hidden; gap: .35rem; margin-top: .18rem; color: var(--muted); font-size: .55rem; white-space: nowrap; }
  .transaction-register-responsive-meta span { overflow: hidden; text-overflow: ellipsis; }
  .transaction-register-responsive-meta span + span::before { margin-right: .35rem; content: "·"; }
}
@media (max-width: 760px) {
  .transaction-register-hero,
  .transaction-filter-heading,
  .transaction-register-footer { align-items: stretch; flex-direction: column; }
  .transaction-register-hero > .button { width: 100%; }
  .transaction-register-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .transaction-filter-toggle { align-self: flex-start; }
  .transaction-filter-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .transaction-filter-search,
  .transaction-filter-actions { grid-column: 1 / -1; grid-row: auto; }
  .journal-selection-bar { align-items: flex-start; flex-wrap: wrap; }
  .journal-selection-guidance { order: 3; width: 100%; white-space: normal; }
  .journal-batch-shelf > section { grid-template-columns: auto minmax(0, 1fr); }
  .journal-batch-shelf > section > :last-child { grid-column: 1 / -1; }
  .transaction-register-footer .pagination-controls { align-items: flex-start; }
  .transaction-register-card { overflow: hidden; }
  .transaction-register-table-wrap { overflow: visible; }
  .transaction-register-table { display: block; table-layout: auto; }
  .transaction-register-table thead { display: none; }
  .transaction-register-table tbody { display: grid; gap: .65rem; padding: .7rem; background: #f7faf8; }
  .transaction-register-table tbody tr { display: grid; min-width: 0; gap: .18rem .6rem; padding: .7rem; background: #fff; border: 1px solid var(--border); border-radius: .65rem; grid-template-columns: auto minmax(0, 1fr) auto; }
  .transaction-register-table tbody td { width: auto; min-width: 0; padding: 0; border: 0; }
  .transaction-register-select { grid-column: 1; grid-row: 1 / span 4; }
  .transaction-register-date { width: auto; grid-column: 2; grid-row: 1; }
  .transaction-register-description { grid-column: 2 / -1; grid-row: 2; }
  .transaction-register-description > a { max-width: 100%; }
  .transaction-register-amount { width: auto; margin-top: .2rem; text-align: left; grid-column: 2; grid-row: 3; }
  .transaction-register-status { width: auto; justify-self: end; grid-column: 3; grid-row: 1; }
  .transaction-register-actions { width: auto; justify-self: end; grid-column: 3; grid-row: 3; }
  .transaction-register-empty { display: block !important; grid-column: 1 / -1 !important; }
}
@media (max-width: 480px) {
  .transaction-register-metrics,
  .transaction-filter-grid { grid-template-columns: 1fr; }
  .transaction-filter-grid > * { grid-column: 1 !important; }
  .transaction-filter-actions { display: grid; }
  .transaction-filter-actions .button,
  .transaction-filter-actions button { width: 100%; }
}

/* Guided transaction summary rail */
.transaction-entry-workspace { display: grid; width: min(100%, 70rem); align-items: start; gap: .9rem; grid-template-columns: minmax(0, 1fr); }
.transaction-entry-workspace.transaction-entry-with-summary { width: min(100%, 90rem); grid-template-columns: minmax(0, 1fr) minmax(17rem, 21rem); }
.transaction-entry-workspace > .transaction-back-link,
.transaction-entry-workspace > .transaction-entry-header { grid-column: 1 / -1; }
.transaction-entry-workspace > .transaction-entry-card { grid-column: 1; grid-row: auto; }
.transaction-guidance-card,
.transaction-preview-card { min-width: 0; margin: 0; }
.transaction-entry-with-summary > .transaction-guidance-card { grid-column: 2; grid-row: 3 / span 2; }
.transaction-preview-card { grid-column: 1 / -1; }
.transaction-guidance-card { position: sticky; top: 5.8rem; }
.transaction-guidance-card.transaction-guidance-preview { position: static; }
.transaction-guidance-card h2 { font-size: .9rem; }
.transaction-guidance-card > p { color: var(--muted); font-size: .68rem; }
.transaction-guidance-card dl { display: grid; gap: .55rem; margin: .9rem 0; grid-template-columns: 1fr auto; }
.transaction-guidance-card dt,
.transaction-guidance-card dd { margin: 0; font-size: .67rem; }
.transaction-guidance-card dd { text-align: right; }
.transaction-good-to-know { display: grid; align-items: start; gap: .55rem; margin-top: 1rem; padding: .75rem; color: #175a36; background: #edf8f1; border: 1px solid #cae2d2; border-radius: .65rem; grid-template-columns: auto 1fr; }
.transaction-good-to-know > span { display: grid; width: 1.3rem; height: 1.3rem; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: .62rem; font-weight: 800; }
.transaction-good-to-know strong { font-size: .67rem; }
.transaction-good-to-know p { margin: .15rem 0 0; color: #526c5d; font-size: .6rem; }
@media (max-width: 1180px) {
  .transaction-entry-workspace,
  .transaction-entry-workspace.transaction-entry-with-summary { width: min(100%, 70rem); grid-template-columns: 1fr; }
  .transaction-entry-workspace > .transaction-entry-card,
  .transaction-entry-with-summary > .transaction-guidance-card,
  .transaction-preview-card { position: static; grid-column: 1; grid-row: auto; }
}
/* Functional transaction lifecycle */
.transaction-progress-five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.transaction-progress-five li { min-width: 0; }
.transaction-progress-five strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.transaction-review-workspace { width: min(100%, 90rem); margin: 0 auto; }
.transaction-review-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin: .9rem 0 1rem; }
.transaction-review-header h1 { margin: .35rem 0 .25rem; font-size: clamp(1.55rem, 2.6vw, 2.2rem); letter-spacing: -.035em; }
.transaction-review-header p { margin: 0; color: var(--muted); }
.transaction-stage-badge { display: inline-flex; padding: .25rem .55rem; color: #126f42; background: #e7f4eb; border-radius: 999px; font-size: .62rem; font-weight: 800; }
.transaction-review-summary-grid { display: grid; align-items: start; gap: .85rem; margin-bottom: .85rem; grid-template-columns: minmax(0, 1.4fr) minmax(16rem, .6fr); }
.transaction-review-summary-grid > .card { min-height: 0; margin: 0; }
.transaction-review-summary-card .section-heading { margin-bottom: .65rem; }
.transaction-review-summary-card h2,
.transaction-review-checklist h2,
.transaction-projected-balances h2 { margin: 0; font-size: .9rem; }
.transaction-review-summary-card dl { display: grid; gap: 0; margin: 0; grid-template-columns: minmax(8rem, .55fr) minmax(0, 1fr); }
.transaction-review-summary-card dt,
.transaction-review-summary-card dd { margin: 0; padding: .55rem .2rem; border-bottom: 1px solid var(--border); font-size: .7rem; }
.transaction-review-summary-card dd { font-weight: 750; text-align: right; overflow-wrap: anywhere; }
.transaction-review-checklist > h2 { padding-bottom: .7rem; border-bottom: 1px solid var(--border); }
.transaction-review-checklist ul { display: grid; gap: .65rem; margin: .8rem 0; padding: 0; list-style: none; }
.transaction-review-checklist li { display: grid; align-items: center; gap: .5rem; color: #344a3e; font-size: .68rem; grid-template-columns: 1.25rem 1fr; }
.transaction-review-checklist li > span { display: grid; width: 1.15rem; height: 1.15rem; place-items: center; color: #fff; background: #16814b; border-radius: 50%; font-size: .55rem; font-weight: 850; }
.transaction-projected-balances { margin-bottom: .85rem; }
.transaction-asset-handoff { display: flex; align-items: center; justify-content: space-between; gap: 1rem; border-color: #b9dcc8; background: linear-gradient(135deg, #f4fbf7, #fff); }
.transaction-asset-handoff > div { display: flex; min-width: 0; align-items: flex-start; gap: .75rem; }
.transaction-asset-handoff h2 { margin: 0 0 .2rem; font-size: .9rem; }
.transaction-asset-handoff p { margin: 0; color: var(--muted); font-size: .7rem; }
.transaction-asset-handoff-icon { display: grid; width: 2rem; height: 2rem; flex: 0 0 2rem; place-items: center; color: #fff; background: var(--green-700); border-radius: 50%; font-size: .75rem; font-weight: 850; }
.transaction-asset-handoff.is-pending { border-color: #ead791; background: #fffaf0; }
.transaction-asset-handoff.is-pending .transaction-asset-handoff-icon { color: #765800; background: #ffedb5; }
.asset-register-prefill { display: grid; gap: .2rem; margin: .8rem 0 1rem; padding: .85rem; color: #175a36; background: #edf8f1; border: 1px solid #cae2d2; border-radius: .7rem; }
.asset-register-prefill span { color: #2f5941; font-size: .72rem; }
.asset-register-prefill small { color: #607568; }
@media (max-width: 650px) {
  .transaction-asset-handoff { align-items: stretch; flex-direction: column; }
  .transaction-asset-handoff .button { width: 100%; }
}
.transaction-projected-balances .section-heading p { margin: .2rem 0 0; color: var(--muted); font-size: .62rem; }
.transaction-projected-grid { display: grid; gap: .65rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.transaction-projected-grid article { display: grid; gap: .55rem; padding: .75rem; background: #f3faf6; border: 1px solid #d5e8dc; border-radius: .6rem; }
.transaction-projected-grid article > span { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: .5rem; }
.transaction-projected-grid article > span:first-child { justify-content: flex-start; }
.transaction-projected-grid article strong { font-size: .7rem; }
.transaction-projected-grid article small { color: #617064; font-size: .62rem; }
.transaction-balance-dot { display: inline-block; width: .5rem; height: .5rem; flex: 0 0 auto; border-radius: 50%; }
.transaction-balance-source { background: #16814b; }
.transaction-balance-destination { background: #3978d1; }
.transaction-live-total { display: block; margin: .2rem 0 .8rem; font-size: 1.25rem; }
.transaction-live-summary-list { border-top: 1px solid var(--border); }
.transaction-live-summary-list dt,
.transaction-live-summary-list dd { padding: .48rem 0; border-bottom: 1px solid var(--border); }
.transaction-live-summary-list dd { max-width: 12rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.transaction-live-projections { margin-top: .9rem; padding: .75rem; background: #f2f9f5; border: 1px solid #d2e5d9; border-radius: .65rem; }
.transaction-live-projections h3 { margin: 0 0 .6rem; font-size: .7rem; }
.transaction-live-projections > div { display: grid; gap: .35rem; padding: .55rem 0; border-top: 1px solid #dde9e1; }
.transaction-live-projections > div > span { display: flex; min-width: 0; align-items: center; justify-content: space-between; gap: .4rem; }
.transaction-live-projections > div > span:first-child { justify-content: flex-start; }
.transaction-live-projections b,
.transaction-live-projections strong { overflow: hidden; font-size: .62rem; text-overflow: ellipsis; white-space: nowrap; }
.transaction-live-projections small { color: #637268; font-size: .57rem; }
.transaction-state-progress { margin-bottom: .75rem; }
.transaction-review-workspace > .card,
.transaction-review-workspace > form > .card { margin-bottom: .85rem; }
.transaction-review-workspace .workflow-actions { border-left: 3px solid #16814b; }

/* Reverse-and-replace correction editor */
.correction-editor { display: grid; gap: .9rem; }
.correction-editor > .card { margin: 0; }
.correction-section-heading { margin-bottom: 1rem; }
.correction-section-heading > div { display: flex; align-items: flex-start; gap: .8rem; }
.correction-section-heading h2,
.correction-lines-heading h2 { margin: 0; color: #121f31; font-size: 1.05rem; }
.correction-section-heading p,
.correction-lines-heading p { margin: .2rem 0 0; color: #68768a; font-size: .72rem; }
.correction-section-icon { display: grid; width: 2.6rem; height: 2.6rem; flex: 0 0 2.6rem; place-items: center; color: #0b8048; background: #e7f5ec; border-radius: 50%; }
.correction-section-icon svg { width: 1.25rem; height: 1.25rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.correction-details-card .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.correction-details-card .form-wide { grid-column: 1 / -1; }
.correction-party-card { padding: 0; overflow: hidden; }
.correction-party-card > summary { display: grid; min-height: 4.4rem; align-items: center; gap: .75rem; padding: .85rem 1rem; cursor: pointer; list-style: none; grid-template-columns: 2.6rem minmax(0, 1fr) auto; }
.correction-party-card > summary::-webkit-details-marker { display: none; }
.correction-party-card > summary > span:nth-child(2) { display: grid; gap: .12rem; }
.correction-party-card > summary strong { color: #162338; font-size: .85rem; }
.correction-party-card > summary small { color: #6a788b; font-size: .66rem; }
.correction-party-card > summary > b { color: #506073; transition: transform .15s ease; }
.correction-party-card[open] > summary > b { transform: rotate(180deg); }
.correction-party-grid { display: grid; gap: .75rem; padding: 0 1rem 1rem; border-top: 1px solid #e4eae6; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.correction-party-grid > .transaction-party-role-picker { min-width: 0; margin-top: .9rem; padding: .8rem; }
.correction-party-grid .transaction-counterparty-heading { display: grid; }
.correction-party-grid .transaction-counterparty-heading a { font-size: .62rem; }
.correction-party-grid .transaction-counterparty-new-grid { grid-template-columns: 1fr; }
.correction-party-grid .transaction-counterparty-new-grid .form-wide { grid-column: 1; }
.correction-lines-card { padding: 1.15rem; overflow: hidden; }
.correction-lines-heading { margin-bottom: .9rem; }
.correction-audit-note { display: grid; align-items: center; gap: .7rem; margin-bottom: 1rem; padding: .75rem .85rem; color: #335b47; background: #f5faf7; border: 1px solid #cfe0d6; border-radius: .65rem; grid-template-columns: 2rem minmax(0, 1fr); }
.correction-audit-note > span { display: grid; width: 2rem; height: 2rem; place-items: center; color: #fff; background: #16814b; border-radius: 50%; }
.correction-audit-note svg { width: 1rem; height: 1rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.correction-audit-note p { margin: 0; font-size: .68rem; line-height: 1.5; }
.correction-lines-shell { overflow-x: auto; border: 1px solid #dce4df; border-radius: .75rem .75rem 0 0; }
.correction-lines-table { min-width: 56rem; table-layout: fixed; }
.correction-lines-table.draft-lines-table { min-width: 44rem; }
.correction-lines-table.draft-lines-table th:nth-child(1) { width: 30%; }
.correction-lines-table.draft-lines-table th:nth-child(2) { width: 30%; }
.correction-lines-table.draft-lines-table th:nth-child(3),
.correction-lines-table.draft-lines-table th:nth-child(4) { width: 20%; }
.correction-lines-table th:nth-child(1) { width: 4%; }
.correction-lines-table th:nth-child(2) { width: 24%; }
.correction-lines-table th:nth-child(3) { width: 22%; }
.correction-lines-table th:nth-child(4),
.correction-lines-table th:nth-child(5) { width: 15%; }
.correction-lines-table th:nth-child(6) { width: 20%; }
.correction-lines-table thead th { padding: .72rem .65rem; color: #476052; background: #fafcfb; border-bottom: 1px solid #dce4df; font-size: .61rem; letter-spacing: .03em; text-align: left; text-transform: uppercase; }
.correction-lines-table tbody td { padding: .72rem .55rem; border-bottom: 1px solid #e4e9e6; vertical-align: middle; }
.correction-lines-table tbody tr:last-child td { border-bottom: 0; }
.correction-lines-table input,
.correction-lines-table select { width: 100%; min-height: 2.55rem; padding: .45rem .55rem; font-size: .7rem; }
.correction-lines-table input[type="number"] { text-align: right; font-variant-numeric: tabular-nums; }
.correction-line-grip { color: #829087; font-size: 1rem; text-align: center; }
.correction-funding-label { display: inline-flex; margin-top: .28rem; padding: .12rem .35rem; color: #176f43; background: #e8f5ed; border-radius: 999px; font-size: .54rem; font-weight: 750; }
.correction-remove-line { width: 100%; min-height: 2.55rem; padding-inline: .45rem; justify-content: center; gap: .3rem; color: #176f43; white-space: nowrap; }
.correction-remove-line svg { width: .9rem; height: .9rem; fill: none; stroke: currentColor; stroke-width: 1.8; }
.correction-remove-line:disabled { opacity: .4; cursor: not-allowed; }
.correction-lines-table tfoot th { padding: .75rem .65rem; color: #1e4b34; background: #f8fbf9; border-top: 1px solid #dce4df; font-size: .66rem; text-align: left; }
.correction-lines-table tfoot th:nth-child(4),
.correction-lines-table tfoot th:nth-child(5) { text-align: right; }
.correction-lines-table tfoot b,
.correction-lines-table tfoot small { display: block; }
.correction-lines-table tfoot small { margin-top: .12rem; color: #6c7a70; font-size: .55rem; font-weight: 500; }
.correction-balance-status { display: inline-flex; align-items: center; gap: .3rem; padding: .3rem .5rem; color: #0b7642; background: #e2f3e8; border-radius: .45rem; white-space: nowrap; }
.correction-balance-status svg { width: .8rem; height: .8rem; fill: none; stroke: currentColor; stroke-width: 2; }
.correction-balance-status.is-unbalanced { color: #9a6500; background: #fff1cf; }
.correction-add-line-row { display: flex; align-items: center; gap: .75rem; padding: .75rem; border: 1px solid #dce4df; border-top: 0; border-radius: 0 0 .75rem .75rem; }
.correction-add-line { min-height: 2.35rem; color: #0a7844; border-style: dashed; }
.correction-add-line-row p { margin: 0; color: #778397; font-size: .62rem; }
.correction-evidence-card > h3,
.correction-original-evidence h3 { margin: .9rem 0 .55rem; font-size: .75rem; }
.correction-original-evidence { margin-top: .9rem; padding-top: .8rem; border-top: 1px solid #e1e7e3; }
.correction-original-evidence h3 span { margin-left: .35rem; padding: .14rem .4rem; color: #51655a; background: #eef3f0; border-radius: 999px; font-size: .55rem; }
.correction-editor-actions { position: sticky; z-index: 6; bottom: 0; display: grid; align-items: center; gap: .7rem; padding: .85rem 1rem; background: rgb(255 255 255 / 96%); border: 1px solid #dce4df; border-radius: .75rem; box-shadow: 0 10px 28px rgb(18 56 38 / 10%); backdrop-filter: blur(8px); grid-template-columns: minmax(0, 1fr) auto auto; }
.correction-editor-actions > div { display: grid; align-items: start; gap: .55rem; grid-template-columns: 1.5rem minmax(0, 1fr); }
.correction-editor-actions > div > span { display: grid; width: 1.45rem; height: 1.45rem; place-items: center; color: #0b7642; background: #e5f4ea; border-radius: 50%; font-size: .65rem; }
.correction-editor-actions p { display: grid; gap: .1rem; margin: 0; }
.correction-editor-actions strong { color: #294334; font-size: .68rem; }
.correction-editor-actions small { color: #6b788b; font-size: .58rem; }
.correction-editor-actions .button { min-height: 2.55rem; }

@media (max-width: 72rem) {
  .correction-party-grid { grid-template-columns: 1fr; }
}
@media (max-width: 42rem) {
  .correction-details-card .form-grid { grid-template-columns: 1fr; }
  .correction-details-card .form-wide { grid-column: 1; }
  .correction-editor-actions { position: static; grid-template-columns: 1fr; }
  .correction-editor-actions .button { width: 100%; }
  .correction-add-line-row { align-items: flex-start; flex-direction: column; }
  .correction-lines-shell { overflow: visible; border: 0; }
  .correction-lines-table,
  .correction-lines-table.draft-lines-table { display: block; min-width: 0; background: transparent; }
  .correction-lines-table thead { display: none; }
  .correction-lines-table tbody { display: grid; gap: .7rem; }
  .correction-lines-table tbody tr { display: grid; gap: .55rem; padding: .75rem; background: #fff; border: 1px solid #dce4df; border-radius: .7rem; }
  .correction-lines-table tbody td { display: grid; min-width: 0; gap: .25rem; padding: 0; border: 0; }
  .correction-lines-table tbody td:not(.correction-line-grip)::before { color: #53675b; content: attr(data-label); font-size: .58rem; font-weight: 750; letter-spacing: .03em; text-transform: uppercase; }
  .correction-line-grip { display: none !important; }
  .correction-lines-table input,
  .correction-lines-table select,
  .correction-lines-table .searchable-select { width: 100%; min-width: 0; max-width: 100%; }
  .correction-lines-table tfoot,
  .correction-lines-table tfoot tr { display: grid; }
  .correction-lines-table tfoot tr { gap: .5rem; margin-top: .7rem; padding: .75rem; background: #f8fbf9; border: 1px solid #dce4df; border-radius: .7rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .correction-lines-table tfoot th { display: block; min-width: 0; padding: 0; border: 0; }
  .correction-lines-table tfoot th:first-child,
  .correction-lines-table tfoot th:last-child { grid-column: 1 / -1; }
  .correction-lines-table tfoot th:nth-last-child(2),
  .correction-lines-table tfoot th:nth-last-child(3) { text-align: left; }
  .correction-lines-table .correction-remove-line { width: 100%; }
}

@media (max-width: 900px) {
  .transaction-review-summary-grid { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .transaction-progress-five { gap: .15rem; }
  .transaction-progress-five li { display: grid; justify-items: center; gap: .25rem; text-align: center; }
  .transaction-progress-five li:not(:last-child)::after { position: absolute; top: .65rem; left: calc(50% + .9rem); width: calc(100% - 1.3rem); margin: 0; }
  .transaction-progress-five strong { width: 100%; font-size: .5rem; }
  .transaction-review-header { display: grid; }
  .transaction-review-summary-card dl { grid-template-columns: 1fr; }
  .transaction-review-summary-card dt { padding-bottom: .1rem; border-bottom: 0; }
  .transaction-review-summary-card dd { padding-top: .1rem; text-align: left; }
  .transaction-projected-grid { grid-template-columns: 1fr; }
}
.transaction-counterparty-picker {
  display: grid;
  gap: .85rem;
  padding: 1rem;
  border: 1px solid #b9dfca;
  border-radius: .9rem;
  background: linear-gradient(135deg, #f7fcf9 0%, #fff 70%);
}

.transaction-counterparty-picker[hidden],
.transaction-counterparty-new[hidden] { display: none !important; }

.transaction-counterparty-heading,
.transaction-counterparty-new-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}

.transaction-counterparty-heading strong,
.transaction-counterparty-new-heading strong { display: block; color: var(--ink); }
.transaction-counterparty-heading p,
.transaction-counterparty-new-heading span { margin: .15rem 0 0; color: var(--muted); font-size: .82rem; }
.transaction-counterparty-heading a { flex: 0 0 auto; font-weight: 700; }
.transaction-counterparty-kicker { display: block; margin-bottom: .2rem; color: var(--green); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.transaction-counterparty-new {
  padding: .9rem;
  border: 1px solid var(--border);
  border-radius: .75rem;
  background: #fff;
}

.transaction-counterparty-new-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin-top: .75rem;
}

.transaction-counterparty-permission { margin: 0; color: var(--muted); font-size: .82rem; }

@media (max-width: 42rem) {
  .transaction-counterparty-heading,
  .transaction-counterparty-new-heading { display: grid; }
  .transaction-counterparty-new-grid { grid-template-columns: 1fr; }
  .transaction-counterparty-new-grid .form-wide { grid-column: 1; }
}

/* Posting controls retain their own grid even after shared field annotation. */
.transaction-review-workspace .transaction-post-form { display: grid; grid-template-columns: minmax(0, 18rem) auto; align-items: end; justify-content: start; gap: .8rem; }
.transaction-post-form > label { min-width: 0; }
.transaction-post-form input { display: block; box-sizing: border-box; width: 100%; min-width: 0; max-width: 100%; }
.transaction-post-form > button { margin: 0; min-height: 2.65rem; }
.app-page:has(.transaction-review-workspace) .messages { position: static; }
@media (max-width: 40rem) {
 .transaction-review-workspace .transaction-post-form { grid-template-columns: minmax(0, 1fr); justify-content: stretch; }
 .transaction-post-form > button { width: 100%; }
}
