/* 자금 관리 업무 화면의 메뉴, 여백, 표 대비를 정리한다. */
#appScreen > header { flex-wrap: wrap; gap: 6px 10px; padding: 8px 12px 0; }
#appScreen > header .header-left { min-width: 210px; }
#appScreen > header .button-row { margin-left: auto; flex-wrap: wrap; gap: 5px; }
#appScreen > header .global-search { flex: 0 1 340px; min-width: 180px; }
.app-primary-navigation { display: flex; width: 100%; gap: 4px; border-top: 1px solid var(--line); padding: 5px 0; flex-wrap: wrap; }
.app-primary-navigation > button { min-height: 30px; padding: 4px 15px; border-radius: 4px; }
.app-primary-navigation > button.active { font-weight: 700; }
.finance-workspace-nav, .admin-menu-tabs { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; padding: 5px 0; }
.finance-workspace-nav button, .admin-menu-tabs .tab { padding: 4px 10px; min-height: 28px; }
.finance-workspace-nav button.active { color: var(--accent); border-color: var(--accent); font-weight: 700; }
.admin-more-menu { position: relative; margin-left: 4px; }
.admin-more-menu > summary { cursor: pointer; padding: 5px 9px; border: 1px solid var(--line); border-radius: 4px; }
.admin-more-menu[open] > div { position: absolute; z-index: 90; top: 100%; left: 0; width: 180px; display: grid; gap: 3px; padding: 7px; background: var(--panel, #fff); border: 1px solid var(--line); box-shadow: 0 3px 12px #0002; }
.admin-more-menu .tab { text-align: left; }
.member-branch-permission { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.member-branch-permission select { max-width: 190px; }
.member-effective-accounts { position: relative; }
.member-effective-accounts > summary { cursor: pointer; color: var(--accent); white-space: nowrap; }
.member-effective-accounts[open] { padding: 5px; background: var(--panel, #fff); }
.bank-ledger-summary-tools { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; margin: 4px 0; }
.bank-ledger-summary-tools > .bank-ledger-tools { flex: 1 1 360px; margin: 0; padding: 0; }
.bank-ledger-summary-tools > .bank-ledger-summary-title { flex: 0 1 auto; min-width: 0; margin: 0; flex-wrap: wrap; }
.bank-ledger-summary-tools #bankLedgerSummary { min-width: 0; margin: 0; }
html[data-theme="dark"] .admin-more-menu[open] > div,
html[data-theme="dark"] .member-effective-accounts[open] { background: #252e32; }
html[data-theme="dark"] #bankLedgerBody tr.bank-ledger-subject-review-row > td { background: #3b2e32 !important; color: #f1e7eb !important; }
html[data-theme="dark"] #bankLedgerBody tr.bank-ledger-subject-review-row:nth-child(even) > td { background: #403137 !important; }
html[data-theme="dark"] #bankLedgerBody tr.bank-ledger-subject-review-row input { color: #f1e7eb; }
.responsive-tools, .responsive-tools > .responsive-tools-content { display: contents; }
.responsive-tools > summary, .mobile-ledger-period { display: none; }
@media (min-width: 768px) {
  #mobileWorkspaceTools::details-content { display: contents; }
  #appScreen > header .button-row { flex-wrap: nowrap; }
  #tab-bank-ledger :is(.bank-ledger-year-row, .bank-ledger-month-row) > button { flex: 0 0 44px; width: 44px; min-width: 44px; }
}
.ledger-tab-list { display: contents; }
#tab-bank-ledger .bank-ledger-month-bar { display: flex; flex-wrap: wrap; }
#tab-bank-ledger .bank-ledger-month-buttons { flex: 1 1 420px; }
#tab-bank-ledger .ledger-tab-list > button.active { background: var(--accent); color: #fff; border-bottom-color: var(--accent); }
.mobile-month-dialog { width: min(440px, calc(100% - 24px)); max-height: calc(100dvh - 32px); padding: 16px; color: var(--text); background: var(--panel, #fff); border: 1px solid var(--line); border-radius: 6px; }
.mobile-month-dialog::backdrop { background: #0008; }
.mobile-month-dialog h2 { font-size: 18px; margin: 0 0 12px; }
.mobile-month-options { max-height: 55dvh; overflow: auto; }
.mobile-month-options fieldset { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; padding: 8px; border: 1px solid var(--line); }
.mobile-month-options label { display: flex; align-items: center; gap: 8px; min-height: 44px; }
.mobile-month-dialog footer { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; }
.mobile-month-dialog button { min-height: 44px; }
@media (max-width: 1100px) {
  #tab-bank-ledger .bank-ledger-month-bar { display: grid; grid-template-columns: minmax(0, 1fr); }
  #tab-bank-ledger .bank-ledger-review-actions { justify-content: flex-start; }
  #tab-bank-ledger.bank-ledger-tab:not(.hidden) { height: auto; min-height: calc(100dvh - 160px); }
  #tab-bank-ledger .ledger-pane:not(.hidden) { overflow: visible; }
  #tab-bank-ledger .bank-ledger-table-wrap { flex: 0 0 auto; min-height: 320px; max-height: 65dvh; }
}
@media (max-width: 767px) {
  #appScreen > header { position: relative; padding: 4px 8px 0; gap: 4px; }
  #appScreen > header .header-left { min-width: 0; flex: 1 1 0; max-width: none; }
  #appScreen > header h1 { font-size: 14px; }
  #appScreen > header .header-meta { font-size: 10px; }
  #appScreen > header .button-row { margin-left: 0; flex-wrap: wrap; justify-content: flex-start; overflow: visible; }
  .app-primary-navigation { flex-wrap: nowrap; overflow-x: auto; min-width: 0; padding: 2px 0; }
  .app-primary-navigation > button { padding: 4px 10px; min-height: 44px; flex: 0 0 auto; }
  .responsive-tools { display: block; flex: 0 0 auto; }
  .responsive-tools > summary { display: flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; cursor: pointer; border: 1px solid var(--line); border-radius: 4px; }
  .responsive-tools:not([open]) > .responsive-tools-content { display: none; }
  .responsive-tools[open] > .responsive-tools-content { display: flex; position: absolute; z-index: 100; left: 8px; right: 8px; top: 48px; flex-wrap: wrap; gap: 8px; max-height: 70dvh; overflow: auto; padding: 12px; background: var(--panel, #fff); border: 1px solid var(--line); box-shadow: 0 4px 12px #0003; }
  #appScreen > header .global-search { min-width: 0; flex: 1 1 100%; max-width: none; }
  .responsive-tools-content button { min-height: 44px; }
  .responsive-tools-content input { min-height: 44px; font-size: 16px; }
  #tab-bank-ledger { position: relative; }
  #tab-bank-ledger .ledger-responsive-tools { margin-left: auto; }
  #tab-bank-ledger .ledger-responsive-tools[open] .bank-ledger-title-actions { flex-wrap: wrap; margin: 0; min-width: 0; }
  #tab-bank-ledger .ledger-subtabs { flex-wrap: nowrap; overflow: visible; }
  #tab-bank-ledger .ledger-tab-list { display: flex; min-width: 0; flex: 1; overflow-x: auto; }
  #tab-bank-ledger .ledger-tab-list > button { min-height: 44px; padding: 4px 8px; flex: 0 0 auto; }
  #tab-bank-ledger .ledger-responsive-tools { position: static; right: 0; background: var(--panel, #fff); }
  #tab-bank-ledger .bank-ledger-month-bar { grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
  #tab-bank-ledger .bank-ledger-year-row, #tab-bank-ledger .bank-ledger-month-row { display: none; }
  .mobile-ledger-period { display: flex; align-items: center; gap: 8px; }
  .mobile-ledger-period select { flex: 1; min-width: 0; min-height: 44px; font-size: 16px; }
  .mobile-ledger-period button { min-height: 44px; }
  #tab-bank-ledger .bank-ledger-review-actions { gap: 8px; }
  #tab-bank-ledger .ledger-review-tools .bank-ledger-review-actions { min-width: 0; flex-wrap: wrap; }
  #tab-bank-ledger .ledger-review-tools[open] > .responsive-tools-content { top: 108px; }
  #bankLedgerMonthlyClosingStatus { flex: 1 1 auto; }
  #bankLedgerNeedsReviewFilterButton { display: none; }
  #tab-bank-ledger .bank-ledger-company-filter { flex-wrap: nowrap; overflow-x: auto; }
  #tab-bank-ledger .bank-ledger-company-filter button, #tab-bank-ledger .bank-sheet-tab { min-height: 44px; flex: 0 0 auto; padding: 4px 10px; }
  #tab-bank-ledger .bank-ledger-search-input { min-width: 0; width: 100%; font-size: 16px; min-height: 44px; }
  #tab-bank-ledger .bank-ledger-tools { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  #tab-bank-ledger .bank-ledger-search-input { flex: 1 1 100%; }
  #tab-bank-ledger .bank-ledger-order-controls { display: none; }
  #tab-bank-ledger .bank-ledger-summary-tools > .bank-ledger-tools { flex-basis: 100%; min-width: 0; }
  .bank-ledger-summary-tools #bankLedgerSummary { flex-basis: 100%; }
  .bank-ledger-summary-tools .bank-ledger-summary-title { width: 100%; }
  .bank-ledger-summary-tools #bankLedgerSummary,
  .bank-ledger-summary-tools #bankLedgerSummary .overview-pill { max-width: 100%; white-space: normal !important; text-align: left; }
  #tab-bank-ledger .ledger-subtabs button,
  #tab-bank-ledger .ledger-subtabs .button-row button { flex: 0 0 auto; white-space: nowrap; }
  #tab-bank-ledger .bank-ledger-table-wrap { overflow-x: auto; }
  #tab-bank-ledger .bank-ledger-table { min-width: 1150px !important; }
  #tab-bank-ledger .bank-ledger-table th { white-space: nowrap; }
  #tab-bank-ledger .bank-ledger-totals-bar { overflow-x: auto; }
  #tab-bank-ledger .bank-ledger-totals-row { min-width: 1000px; }
  .bank-ledger-sort-hint, .bank-ledger-edge-button { display: none; }
}

/* 미지정 과목은 확정 초록선보다 위에 표시해 글자·선택 테두리와 분리한다. */
#tab-bank-ledger :is(.bank-ledger-month-row > button, .bank-sheet-tab) { position: relative; padding-bottom: 7px !important; }
#tab-bank-ledger .subject-check-pending::after { content: ""; position: absolute; left: 6px; right: 6px; bottom: 3px; height: 2px; border-radius: 1px; background: var(--warn); pointer-events: none; }
#tab-bank-ledger .subject-check-pending.active::after { background: #fde68a; }

/* 은행 진단과 마감 도구는 모든 화면에서 기본 접힘 상태로 유지한다. */
#tab-bank-ledger .ledger-review-tools { position: relative; display: block; flex: 0 0 auto; justify-self: end; align-self: start; width: max-content; max-width: 100%; margin-left: auto; }
#tab-bank-ledger .ledger-review-tools > summary { display: list-item; list-style-position: inside; min-height: 28px; padding: 3px 9px; border: 1px solid var(--line); border-radius: 4px; background: var(--panel, #fff); color: var(--text); cursor: pointer; white-space: nowrap; }
#tab-bank-ledger .ledger-review-tools > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
#tab-bank-ledger .ledger-review-tools:not([open]) > .responsive-tools-content { display: none; }
#tab-bank-ledger .ledger-review-tools[open] > .responsive-tools-content { display: block; position: absolute; z-index: 100; left: auto; right: 0; top: calc(100% + 4px); width: min(480px, calc(100vw - 32px)); max-height: min(60dvh, 400px); overflow: auto; padding: 10px; background: var(--panel, #fff); color: var(--text); border: 1px solid var(--line); border-radius: 4px; box-shadow: 0 4px 12px #0002; }
#tab-bank-ledger .ledger-review-tools .bank-ledger-review-actions { justify-content: flex-start; flex-wrap: wrap; gap: 6px; }
#tab-bank-ledger .ledger-review-tools .monthly-closing-checklist { flex-wrap: wrap; }
@media (max-width: 767px) {
  #tab-bank-ledger .ledger-review-tools > summary { min-height: 44px; padding: 10px 9px; }
}
