.tj-shell { width: min(1400px, 96vw); }
.tj-layout { display: grid; grid-template-columns: 1fr 1.4fr; gap: 1rem; align-items: start; }
.tj-layout > * { min-width: 0; }
.tj-card { min-width: 0; border: 1px solid var(--border); border-radius: 16px; background: linear-gradient(160deg, #fff 0%, #fefcf8 100%); box-shadow: var(--shadow); padding: 1rem; }
.tj-card h2 { margin: 0 0 .75rem; font-size: 1.03rem; }
.tj-field { margin-bottom: .75rem; }
.tj-field label { display: block; margin-bottom: .3rem; font-weight: 600; font-size: .88rem; }
.tj-field input, .tj-field select, .tj-field textarea { width: 100%; border-radius: 10px; border: 1px solid var(--border); background: #fdfcf8; color: #1f1f1f; font-family: "IBM Plex Mono", monospace; font-size: .86rem; padding: .52rem .58rem; }
.tj-field textarea { min-height: 110px; max-height: 340px; resize: vertical; }
.tj-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: .6rem; }
.inline-action-row { display: grid; grid-template-columns: 1fr auto; gap: .45rem; }
.inline-action-row input[type="number"] { max-width: 110px; }
.mini-btn, .file-btn, .primary-btn { border-radius: 999px; border: 1px solid #b8ddcf; background: #e8f8f2; color: #105f49; padding: .4rem .75rem; font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; }
.primary-btn { background: var(--accent); border-color: var(--accent); color: #fff; }
.text-link-btn { margin-top: .35rem; border: 0; background: transparent; color: var(--accent-deep); font: inherit; font-size: .82rem; font-weight: 700; cursor: pointer; text-decoration: underline; text-underline-offset: .12em; padding: 0; }
.toolbar { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: .45rem; }
.status-text { margin: .55rem 0 0; color: #5f574e; font-size: .84rem; }
.summary-row { display: flex; gap: 1rem; flex-wrap: wrap; margin: 0 0 .55rem; }
.summary-row p { margin: 0; color: #4f483f; font-size: .88rem; }
.ledger-filter-row { display: grid; grid-template-columns: 1fr 1fr 1fr auto; gap: .6rem; align-items: end; margin: 0 0 .55rem; }
.filter-btn-wrap { min-width: 150px; }
.table-wrap { max-width: 100%; overflow-x: auto; overflow-y: hidden; border: 1px solid #e5ddd1; border-radius: 12px; background: #fff; }
.table-wrap table { width: 100%; border-collapse: collapse; min-width: 860px; }
.table-wrap th, .table-wrap td { padding: .48rem .55rem; border-bottom: 1px solid #efe7dc; text-align: left; font-size: .82rem; vertical-align: top; }
.table-wrap th { background: #faf6ef; color: #4f483f; font-weight: 700; }
.row-action-group { display: inline-flex; gap: .35rem; align-items: center; }
.row-edit { border: 1px solid #bfd6ef; background: #eef6ff; color: #1f4f86; border-radius: 999px; padding: .18rem .45rem; font: inherit; font-size: .72rem; cursor: pointer; }
.row-remove { border: 1px solid #e6c0bf; background: #fff4f4; color: #8a2f2b; border-radius: 999px; padding: .18rem .45rem; font: inherit; font-size: .72rem; cursor: pointer; }
.tj-modal-backdrop { position: fixed; inset: 0; background: rgba(14, 20, 28, 0.55); display: grid; place-items: center; padding: 1rem; z-index: 2200; overflow-y: auto; }
.tj-modal-backdrop[hidden] { display: none !important; }
.tj-modal-panel { width: min(560px, 94vw); max-height: min(90vh, 820px); overflow: auto; border: 1px solid var(--border); border-radius: 16px; background: linear-gradient(160deg, #fff 0%, #fefcf8 100%); box-shadow: var(--shadow); padding: 1rem; }
.tj-modal-head { display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin-bottom: .6rem; }
.tj-modal-head h2 { margin: 0; font-size: 1rem; }
@media (max-width: 1060px) { .tj-layout { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .ledger-filter-row { grid-template-columns: 1fr; } .filter-btn-wrap { min-width: 0; } }
@media (max-width: 760px) {
  .tj-field-row { grid-template-columns: 1fr; }
  .inline-action-row { grid-template-columns: 1fr; }
  .table-wrap table { min-width: 700px; }
}
