.ledger-tool { min-width: 0; }
.ledger-savebar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 6px 20px; padding: 14px 24px; background: var(--subtle); border-bottom: 1px solid var(--line); }
.ledger-savebar p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.ledger-savebar .ledger-save-error { color: var(--error); }
.ledger-privacy { margin: 0; padding: 16px 24px 0; color: var(--muted); font-size: 13px; line-height: 1.7; }
.ledger-toolbar { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 20px; padding: 24px; }
.ledger-event { flex: 1 1 350px; max-width: 550px; grid-template-columns: minmax(125px, .8fr) minmax(150px, 1.2fr); }
.ledger-toolbar .tool-field, .ledger-toolbar .tool-actions { margin: 0; }
.ledger-toolbar .tool-actions { gap: 8px; }
.ledger-tool .outline-button, .ledger-tool .solid-button { padding-inline: 16px; }
.ledger-metrics { display: grid; grid-template-columns: 1.3fr 1fr 1fr .7fr; gap: 16px; margin: 0; padding: 24px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.ledger-metrics dt { color: var(--muted); font-size: 13px; margin-bottom: 9px; }
.ledger-metrics dd { font-variant-numeric: tabular-nums; margin: 0; font-size: clamp(20px, 2.4vw, 30px); font-weight: 700; letter-spacing: -.6px; overflow-wrap: anywhere; }
.ledger-metrics > div:first-child dd { color: var(--accent); }
.ledger-workspace { display: grid; grid-template-columns: minmax(240px, .7fr) minmax(0, 2.3fr); }
.ledger-new-fields { border: 0; padding: 0; margin: 0; min-width: 0; }
.ledger-new-fields:disabled .solid-button { background: var(--line); color: var(--muted); border-color: var(--line); }
.ledger-new-fields:disabled .tool-actions > .solid-button { width: 100%; }
.ledger-edit-hint { color: var(--muted); }
.ledger-editor { padding: 28px 24px; border-right: 1px solid var(--line); min-width: 0; }
.ledger-editor .tool-fields { grid-template-columns: 1fr; gap: 0; }
.ledger-amount-label { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.ledger-amount-korean { color: var(--accent); font-size: 14px; line-height: 1.6; overflow-wrap: anywhere; }
.ledger-amount-presets { display: flex; gap: 8px; margin: -8px 0 12px; }
.ledger-tool .ledger-amount-presets > button { flex: 1; min-width: 0; min-height: 44px; padding: 8px 4px; font-size: 14px; white-space: nowrap; }
.ledger-list { padding: 28px 24px; min-width: 0; }
.ledger-listhead { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.ledger-listhead h2 { margin: 0; }
.ledger-listhead h2 span { margin-left: 4px; color: var(--muted); font-size: 13px; font-weight: 400; }
.ledger-search { margin: 0; width: 185px; font-size: 12px; gap: 5px; }
.tool-workspace .ledger-search input { min-height: 42px; padding: 8px 10px; }
.ledger-list-tools { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 14px 0 8px; }
.ledger-list-tools p { margin: 0; color: var(--muted); font-size: 12px; }
.ledger-link { border: 0; background: none; color: var(--accent); padding: 10px 4px; cursor: pointer; font-size: 13px !important; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; white-space: nowrap; }
.ledger-tool button:focus-visible, .ledger-tool a:focus-visible, .ledger-table-wrap:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.ledger-danger { color: var(--error); }
.ledger-table-wrap { overflow-x: auto; overscroll-behavior-x: contain; max-width: 100%; }
.ledger-table { width: 100%; min-width: 800px; border-collapse: collapse; table-layout: fixed; font-size: 13px; }
.ledger-table th { padding: 10px 7px; border-block: 1px solid var(--line); color: var(--muted); font-weight: 500; text-align: left; white-space: nowrap; }
.ledger-table th:nth-child(1) { width: 17%; }
.ledger-table th:nth-child(2) { width: 15%; }
.ledger-table th:nth-child(3) { width: 20%; }
.ledger-table th:nth-child(4) { width: 11%; }
.ledger-table th:nth-child(5) { width: 7%; }
.ledger-table th:nth-child(6), .ledger-table th:nth-child(7) { width: 10%; text-align: center; }
.ledger-table th:nth-child(8) { width: 10%; }
.ledger-table th button { color: var(--ink); background: none; border: none; padding: 8px 0; min-height: 36px; cursor: pointer; text-align: left; }
.ledger-table th[aria-sort="ascending"] button, .ledger-table th[aria-sort="descending"] button { color: var(--accent); }
.ledger-table td { border-bottom: 1px solid var(--line); padding: 9px 7px; line-height: 1.5; overflow-wrap: anywhere; }
.ledger-table .ledger-person { font-weight: 600; }
.ledger-table .ledger-number { font-variant-numeric: tabular-nums; white-space: nowrap; }
.ledger-table .ledger-check-cell { text-align: center; }
.ledger-editing-row { background: var(--accent-light); }
.ledger-editing-row td { vertical-align: top; padding-block: 10px; border-bottom: 0; }
.tool-workspace .ledger-editing-row :is(input:not([type="checkbox"]), select) { min-height: 44px; padding: 8px 5px; font-size: 13px; }
.ledger-editing-row [data-ledger-inline-part="relation-custom"] { display: block; margin-top: 8px; }
.ledger-row-actions .ledger-link { padding-block: 8px; color: var(--muted); }
.ledger-row-actions .ledger-link:hover { color: var(--error); }
.ledger-editing-note td { background: var(--accent-light); padding-block: 10px; }
.ledger-edit-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ledger-edit-context { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 16px; min-width: 0; }
.ledger-edit-context > span { color: var(--muted); font-size: 12px; }
.ledger-edit-context .ledger-amount-korean { font-weight: 600; }
.ledger-edit-context .ledger-amount-korean::before { content: '받은 금액 · '; }
.ledger-edit-actions { display: flex; gap: 8px; flex: none; }
.ledger-edit-actions > button { min-height: 44px; padding-block: 10px; font-size: 13px; }
.ledger-editing-note p { margin: 4px 0; font-size: 12px; }
.tool-workspace .ledger-table input[type="checkbox"] { width: 22px; height: 22px; margin: 8px; vertical-align: middle; }
.ledger-duplicate-tag { display: block; color: var(--warning); font-size: 11px; font-weight: 400; margin-top: 3px; }
.ledger-table .ledger-empty { padding: 40px 12px; text-align: center; color: var(--muted); white-space: normal; }
.ledger-reconcile { display: grid; grid-template-columns: minmax(0, 1fr) minmax(120px, .65fr); gap: 12px 20px; border-top: 1px solid var(--line); margin-top: 24px; padding-top: 22px; align-items: center; }
.ledger-reconcile h3 { font-size: 14px; font-weight: 600; margin: 0; }
.ledger-reconcile .tool-hint { margin: 6px 0 0; font-size: 12px; }
.ledger-reconcile .tool-field { margin: 0; font-size: 12px; }
.ledger-reconcile > p { grid-column: 1 / -1; margin: 0; font-size: 13px; line-height: 1.7; color: var(--accent); }
.ledger-reconcile > .ledger-difference-error { color: var(--error); }
.ledger-feedback { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; border-top: 1px solid var(--line); padding: 12px 24px; min-height: 48px; }
.ledger-feedback p { margin: 0; color: var(--accent); font-size: 13px; }
.ledger-notice { padding: 16px; border: 1px solid var(--warning-line); background: var(--warning-paper); font-size: 13px; line-height: 1.8; }
.ledger-notice p { margin: 0; }
.ledger-notice .tool-actions { margin-top: 14px; }
.ledger-file { margin: 0 24px 24px; padding: 24px; border: 1px solid var(--line); background: var(--subtle); font-size: 14px; line-height: 1.8; }
.ledger-file .tool-field { max-width: 480px; }
.tool-workspace .ledger-file input[type="file"] { font-size: 14px; width: 100%; }
.ledger-footer { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 24px; padding: 16px 24px; border-top: 1px solid var(--line); }
.ledger-footer .tool-hint { flex: 1 1 500px; margin: 0; font-size: 12px; }
.ledger-tool > .ledger-notice { margin: 0 24px 24px; }
@media (max-width: 960px) {
  .ledger-workspace { grid-template-columns: minmax(220px, .85fr) minmax(0, 1.5fr); }
  .ledger-editor, .ledger-list { padding: 24px 18px; }
  .ledger-editor .tool-fields { grid-template-columns: 1fr; gap: 0; }
  .ledger-listhead { align-items: stretch; }
  .ledger-search { width: 100%; }
}
@media (max-width: 650px) {
  .ledger-savebar, .ledger-toolbar, .ledger-metrics, .ledger-footer { padding: 16px; }
  .ledger-privacy { padding: 14px 16px 0; }
  .ledger-event { flex-basis: 100%; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 10px; }
  .ledger-toolbar > .tool-actions { width: 100%; }
  .ledger-toolbar > .tool-actions > button { flex: 1; padding-inline: 8px; font-size: 12px; }
  .ledger-metrics { grid-template-columns: 1fr 1fr; gap: 20px 12px; }
  .ledger-metrics dd { font-size: 24px; }
  .ledger-workspace { grid-template-columns: 1fr; }
  .ledger-editor { border-right: 0; border-bottom: 1px solid var(--line); }
  .ledger-editor, .ledger-list { padding: 24px 16px; }
  .ledger-editor .tool-fields { grid-template-columns: 1fr 1fr; gap: 12px; }
  .ledger-listhead { align-items: center; }
  .ledger-search { width: 160px; }
  .ledger-list-tools { flex-wrap: wrap; }
  .ledger-file { margin: 0 16px 16px; padding: 16px; }
  .ledger-feedback { padding-inline: 16px; }
  .ledger-tool > .ledger-notice { margin: 0 16px 16px; }
}
@media (max-width: 360px) { .ledger-search { width: 100%; } .ledger-reconcile { grid-template-columns: 1fr; } }
