@charset "UTF-8";

/* 월간계획: 확정 목업의 제목/메뉴와 4등분 조회 조건. 전용 메뉴는 이 화면에만 표시한다. */
.workspace.monthly-workspace{--monthly-line:#dce5f4;--monthly-text:#14233d;--monthly-accent:#356cbd}
.workspace.monthly-workspace .work-content{background:#f3f5fa;padding:12px}
.workspace.monthly-workspace #screen-group{display:none}
.workspace.monthly-workspace .screen-heading{background:#fff;border:1px solid var(--monthly-line);border-radius:6px;padding:7px 12px;margin-bottom:12px;gap:10px;min-height:58px}
.workspace.monthly-workspace .screen-heading h1{display:flex;align-items:center;gap:12px;margin:0;font-size:18px;color:var(--monthly-text)}
.workspace.monthly-workspace .screen-heading h1::after{content:'자금계획 › 월간 계획';font-size:11px;font-weight:400;color:#60779c}
.workspace.monthly-workspace .toolbar .menu-tool{min-width:42px;padding:4px 7px;gap:3px;font-size:11px;color:var(--monthly-text);white-space:nowrap}
.workspace.monthly-workspace .toolbar .menu-tool svg{width:17px;height:17px}
.workspace.monthly-workspace #monthly-generate,.workspace.monthly-workspace #monthly-register{color:var(--monthly-accent)}
.workspace.monthly-workspace #monthly-register{border-right:1px solid var(--monthly-line);border-radius:0;margin-right:6px;padding-right:13px}
.workspace.monthly-workspace .filters{background:#fff;border-color:var(--monthly-line);border-radius:6px;margin-bottom:12px;padding:14px 16px}
.workspace.monthly-workspace #filter-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:center;min-width:0}
.workspace.monthly-workspace #filter-fields>label,.workspace.monthly-workspace .monthly-period{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px;align-items:center;min-width:0;font-size:12px;color:#60779c;text-align:right}
.workspace.monthly-workspace .monthly-date-range{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:4px;align-items:center;min-width:0}
.workspace.monthly-workspace #filter-fields input,.workspace.monthly-workspace #filter-fields select{width:100%;min-width:0;height:36px;border:1px solid #c4d3ee;border-radius:3px;padding:5px 7px;color:var(--monthly-text);font-size:12px}
.workspace.monthly-workspace #filter-fields input[type=date]{padding:5px 2px;font-size:11px;letter-spacing:-.3px}
.workspace.monthly-workspace .monthly-date-range input::-webkit-calendar-picker-indicator{width:11px;margin:0;padding:0}
.workspace #monthly-plan-grid{--ag-font-family:'Malgun Gothic',sans-serif;--ag-font-size:13px;--ag-header-background-color:#edf2fb;--ag-header-foreground-color:#14233d;--ag-border-color:#dce5f4;--ag-row-border-color:#e6ecf6;--ag-selected-row-background-color:#edf3ff;--ag-checkbox-checked-color:#356cbd;width:100%;min-height:190px}
.workspace #monthly-plan-grid .monthly-amount{text-align:right;font-variant-numeric:tabular-nums}
.workspace #monthly-plan-grid input,.workspace #monthly-plan-grid select{min-height:0;margin:0;box-shadow:none}
.workspace.monthly-workspace .table-card{border-color:var(--monthly-line)}
#monthly-generator{max-width:440px}
#monthly-generator input[type=month]{width:100%;font-size:16px}
#monthly-generator .policy-note{display:block}
@media(max-width:1250px){.workspace.monthly-workspace #filter-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.workspace.monthly-workspace #filter-fields{grid-template-columns:minmax(0,1fr)}.workspace.monthly-workspace .screen-heading h1{flex-wrap:wrap;gap:6px}}

.search-select-editor{background:#fff;border:1px solid #18685b;border-radius:4px;box-shadow:0 4px 16px #123d3824;max-width:calc(100vw - 24px);color:#18383d;font:13px 'Malgun Gothic',sans-serif}
.search-select-editor input{display:block;box-sizing:border-box;width:100%;height:42px;padding:8px 10px;border:0;border-bottom:1px solid #dce6e1;border-radius:0;background:#fff;color:#18383d;font:inherit}
.search-select-options{max-height:240px;overflow-y:auto;padding:4px 0;overscroll-behavior:contain}
.search-select-option{padding:9px 10px;min-height:36px;cursor:pointer;overflow-wrap:anywhere}
.search-select-option[aria-selected=true],.search-select-option:hover{background:#e7f2ec;color:#14594d}
.search-select-empty{padding:12px 10px;color:#62716b}

.counterparty-editor{background:#fff;border:1px solid #18685b;border-radius:3px;box-shadow:0 4px 16px #123d3824;max-width:calc(100vw - 24px);color:#18383d;font:13px 'Malgun Gothic',sans-serif}
.counterparty-editor input{display:block;width:100%;height:42px;padding:8px 10px;border:0;border-bottom:1px solid #dce6e1;border-radius:0;background:#fff;color:#18383d;font:inherit}
.counterparty-options{max-height:240px;overflow-y:auto;padding:4px 0}
.counterparty-option{padding:9px 10px;min-height:36px;cursor:pointer;overflow-wrap:anywhere}
.counterparty-option[aria-selected=true],.counterparty-option:hover{background:#e7f2ec;color:#14594d}
.counterparty-empty{padding:12px 10px;color:#62716b}

/* 공통 메뉴: 제목 오른쪽에 항상 같은 순서로 표시한다. */
.workspace .screen-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;border-bottom:2px solid #d4dfd9;padding-bottom:6px;margin-bottom:16px}
.workspace .screen-heading .toolbar{display:flex;align-items:center;gap:3px;flex-wrap:wrap}
.workspace .toolbar .menu-tool{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:49px;padding:6px 7px;background:transparent;border:0;border-radius:3px;color:#163b43;text-decoration:none;font-size:12px;line-height:1.3;box-shadow:none}
.workspace .toolbar .menu-tool svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.workspace .toolbar .menu-tool:hover:not(:disabled){background:#e7f0eb}
.workspace .toolbar .menu-tool:disabled,.workspace .toolbar .menu-tool[aria-disabled=true]{opacity:.28;cursor:default}
.workspace .menu-separator{height:32px;border-left:1px solid #d4dfd9;margin:0 9px}
.workspace #audit-grid,.workspace #transaction-grid,.workspace #counterparty-grid{--ag-font-family:'Malgun Gothic',sans-serif;--ag-font-size:13px;--ag-header-background-color:#eff5f1;--ag-header-foreground-color:#315b52;--ag-border-color:#dce6e1;--ag-row-border-color:#e6ede9;--ag-selected-row-background-color:#edf7f1;--ag-range-selection-border-color:#18685b;--ag-checkbox-checked-color:#18685b;width:100%;min-height:190px}
.workspace #transaction-grid .transaction-amount{text-align:right;font-variant-numeric:tabular-nums}
.workspace #transaction-grid input,.workspace #transaction-grid select{min-height:0;margin:0;box-shadow:none}
.workspace [hidden]{display:none!important}
@media(max-width:650px){.workspace .screen-heading .toolbar{width:100%;gap:1px}.workspace .toolbar .menu-tool{min-width:43px;padding:6px 4px}.workspace .menu-separator{margin:0 3px}}

/* 연간 자금 종합표: 가로 스크롤과 고정 제목 */
.workspace .work-content {
  max-width: none;
  width: 100%;
  margin: 0;
  padding-left: 12px;
  padding-right: 12px;
}
.annual-heading h2 { font-size: 22px; margin: 6px 0; }
.annual-heading p,.annual-explanation { font-size: 13px; color: #566f61; line-height: 1.7; }
.annual-ag-grid{width:100%;--ag-font-family:'Malgun Gothic',sans-serif;--ag-font-size:13px;--ag-header-background-color:#e4efe8;--ag-border-color:#d5e1d9;--ag-row-border-color:#e0e8e2;--ag-foreground-color:#163b43;--ag-cell-horizontal-border:solid #e0e8e2;font-variant-numeric:tabular-nums}
.annual-ag-grid .annual-total{background:#e0eee5;font-weight:700}
.annual-ag-grid .annual-summary{--ag-row-background-color:#eaf3ed;font-weight:700;background:#eaf3ed}
.annual-ag-grid .annual-negative{color:#ae342b}
.annual-contracts{margin:22px 0;border:1px solid #d5e1d9;border-radius:8px;background:#fff;overflow:hidden}
.annual-contracts summary{padding:15px;font-size:16px;font-weight:700;cursor:pointer}

/* 업무 흐름별 접이식 메뉴와 즐겨찾기 */
.workspace .sidebar nav {
  overflow-x: hidden;
  overflow-y: auto;
  min-width: 0;
  padding-right: 7px;
  scrollbar-width: thin;
  scrollbar-color: #648f7f transparent;
}

.workspace .sidebar nav:hover {
  scrollbar-color: #87b39f transparent;
}

.workspace .sidebar nav::-webkit-scrollbar {
  width: 6px;
}

.workspace .sidebar nav::-webkit-scrollbar-track {
  background: transparent;
}

.workspace .sidebar nav::-webkit-scrollbar-thumb {
  background: #648f7f;
  border-radius: 999px;
}

.workspace .sidebar nav:hover::-webkit-scrollbar-thumb {
  background: #87b39f;
}

.workspace .sidebar nav::-webkit-scrollbar-button {
  display: none;
  width: 0;
  height: 0;
}

.sidebar .menu-group,
.sidebar .favorite-menu,
.sidebar .menu-row {
  min-width: 0;
  max-width: 100%;
}

.sidebar .menu-row a {
  overflow-wrap: anywhere;
  white-space: normal;
}

.workspace .sidebar {
  width: 264px;
}

.sidebar .favorite-menu {
  margin: 0 0 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid #ffffff20;
}

.sidebar .favorite-menu h2 {
  margin: 8px 10px;
  font-size: 13px;
  color: #b4ccbf;
  letter-spacing: 0;
}

.sidebar .favorite-hint {
  font-size: 12px;
  color: #aac4b7;
  margin: 10px;
  line-height: 1.7;
}

.sidebar .menu-group {
  margin-bottom: 12px;
}

.sidebar .menu-group[open] > summary {
  background: #ffffff0d;
  color: #ecf5ef;
}

.sidebar .menu-children {
  margin: 8px 0 4px 20px;
  padding-left: 8px;
  border-left: 1px solid #638d7b;
  min-width: 0;
}

.sidebar .menu-children .menu-row a {
  padding-left: 7px;
  font-weight: 400;
}

.sidebar .menu-children .menu-row a.active {
  font-weight: 700;
}

.sidebar .menu-group summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 36px;
  padding: 7px 10px;
  color: #d3e4db;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  list-style: none;
  border-radius: 6px;
}

.sidebar .menu-group summary::-webkit-details-marker {
  display: none;
}

.sidebar .menu-group summary:hover {
  background: #ffffff0d;
}

.sidebar .menu-chevron {
  font-size: 20px;
  line-height: 1;
}

.sidebar .menu-group[open] .menu-chevron {
  transform: rotate(90deg);
}

.sidebar .menu-row {
  display: flex;
  align-items: center;
  gap: 2px;
  margin: 2px 0;
}

.sidebar .menu-row a {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  min-height: 34px;
  padding: 5px 7px 5px 12px;
  border-left: 3px solid transparent;
  border-radius: 5px;
  color: #c9dcd2;
  font-size: 14px;
  line-height: 1.5;
}

.sidebar .menu-row a:hover {
  background: #ffffff10;
}

.sidebar .menu-row a.active {
  background: #d8eee3;
  border-left-color: #76c6a2;
  color: #163e30;
  font-weight: 700;
}

.workspace .sidebar .favorite-toggle {
  padding: 0;
  width: 30px;
  min-height: 34px;
  flex-shrink: 0;
  border: 0;
  background: transparent;
  color: #b5d4c3;
  font-size: 16px;
}

.workspace .sidebar .favorite-toggle[aria-pressed=true] {
  color: #f1d58a;
}

.sidebar summary:focus-visible {
  outline: 3px solid #73b9a3;
  outline-offset: 1px;
}

@media(max-width:700px) {
  .workspace .sidebar {
    width: 100%;
  }

  .workspace .sidebar nav {
    display: block;
    max-height: 280px;
  }
}

/* 은행·계좌 관리: 아이콘 카드형 탭 */
.workspace #tabs.icon-card-tabs {
  gap: 10px;
  border-bottom: 0;
  padding-bottom: 0;
  margin-bottom: 20px;
}

.workspace #tabs.icon-card-tabs .tab {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 9px;
  flex: 1 1 150px;
  min-height: 52px;
  padding: 14px 16px;
  border: 1px solid #cddbd3;
  border-left: 4px solid #cddbd3;
  border-radius: 8px;
  background: #fff;
  color: #496358;
  font-size: 15px;
  white-space: nowrap;
}

.workspace #tabs.icon-card-tabs .tab:hover {
  background: #f0f6f2;
  border-color: #8faf9f;
}

.workspace #tabs.icon-card-tabs .tab.active {
  background: #e5f0e9;
  color: #176457;
  border-color: #176457;
  font-weight: 700;
}

.workspace #tabs.icon-card-tabs .tab-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

@media(max-width:700px) {
  .workspace #tabs.icon-card-tabs .tab {
    flex-basis: 140px;
  }
}
/* 엑셀 미리보기와 원본 코드 연결 */
.import-tools>.import-help,.import-tools>#import-status,.import-review {
  flex-basis: 100%;
  width: 100%;
  margin: 0
}

.import-help {
  font-size: 12px;
  color: #55745f;
  line-height: 1.9
}

.import-review {
  min-width: 0;
  background: white;
  border: 1px solid #d6e3d9;
  border-radius: 8px;
  padding: 18px
}

.import-review h2 {
  font-size: 18px;
  margin: 0 0 12px
}

.import-review>p {
  font-size: 12px;
  line-height: 1.9
}

.import-review details {
  border-top: 1px solid #e0e8e1;
  margin: 14px 0;
  padding-top: 12px
}

.import-review summary {
  cursor: pointer;
  color: #315b44;
  font-size: 13px;
  font-weight: 600
}

.mapping-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit,minmax(220px,1fr));
  gap: 12px;
  padding: 14px 0;
  max-height: 360px;
  overflow: auto
}

.mapping-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0
}

.mapping-field strong {
  font-size: 12px;
  color: #325c43
}

.mapping-field select {
  padding: 9px;
  border: 1px solid #ceded2;
  border-radius: 5px;
  background: white;
  font: inherit;
  font-size: 12px;
  width: 100%
}

.mapping-field small {
  color: #809184;
  font-size: 10px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap
}

#import-preview-table {
  border-collapse: collapse;
  width: 100%;
  font-size: 11px;
  white-space: nowrap
}

#import-preview-table th {
  background: #f0f5f1;
  color: #42634c;
  text-align: left;
  padding: 10px;
  position: sticky;
  top: 0
}

#import-preview-table td {
  padding: 10px;
  border-bottom: 1px solid #e4ebe5;
  max-width: 300px;
  overflow: hidden;
  text-overflow: ellipsis
}

#import-preview-table .preview-error-row td {
  background: #fff8f1
}

#import-preview-table td:last-child {
  max-width: 380px;
  white-space: normal;
  color: #8d4c35
}

.import-review .table-scroll {
  max-height: 390px;
  border: 1px solid #dfe8e1;
  border-radius: 5px
}

.import-review a {
  color: #176457;
  text-decoration: underline
}

@media(max-width:600px) {
  .import-review {
    padding: 12px
  }

  .mapping-grid {
    grid-template-columns: 1fr
  }

  .import-tools form {
    width: 100%
  }

}

/* 업무 화면 공통 레이아웃 */
.workspace {
  display: flex;
  min-height: 100svh;
  background: #f4f7f5
}

.sidebar {
  width: 248px;
  flex-shrink: 0;
  background: #123d38;
  color: #fff;
  position: sticky;
  top: 0;
  height: 100svh;
  display: flex;
  flex-direction: column;
  padding: 24px 14px
}

.sidebar>.brand {
  margin: 0 12px 24px
}

.sidebar nav {
  overflow: auto;
  flex: 1
}

.nav-group {
  margin: 0 0 16px
}

.nav-group h2 {
  font-size: 11px;
  color: #8faea0;
  letter-spacing: .5px;
  margin: 16px 14px 8px
}

.nav-group a {
  display: block;
  font-size: 12px;
  padding: 9px 14px;
  border-radius: 5px;
  color: #c4d5cc;
  line-height: 1.5
}

.nav-group a:hover {
  background: #ffffff0c
}

.nav-group a.active {
  background: #d8eee3;
  color: #183b2c;
  font-weight: 700
}

.sidebar-footer {
  font-size: 10px;
  color: #789f8c;
  padding: 16px 12px 0
}

.workspace-main {
  flex: 1;
  min-width: 0
}

.workspace-header {
  background: #fff;
  border-bottom: 1px solid #e1e7e3;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  padding: 18px 28px
}

.scope-select,.user-area {
  display: flex;
  align-items: center;
  gap: 10px
}

.scope-select label,.user-area small {
  font-size: 11px;
  color: #7b8b82
}

.scope-select select {
  width: 300px;
  min-width: 120px;
  padding: 8px;
  border: 1px solid #d7e1d9;
  border-radius: 5px
}

.user-area {
  font-size: 12px;
  flex-wrap: wrap
}

.workspace .logout {
  padding: 7px 12px;
  font-size: 11px
}

.work-content {
  padding: 28px;
  max-width: none;
  width: 100%;
  margin: 0
}

.screen-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin-bottom: 8px
}

.screen-heading h1 {
  font-size: 25px;
  letter-spacing: -1px;
  margin: 14px 0
}

.toolbar {
  display: flex;
  gap: 7px;
  align-items: center;
  flex-wrap: wrap
}

.workspace button,dialog button,.outline-button {
  border: 1px solid #d6e1d9;
  border-radius: 5px;
  padding: 9px 13px;
  background: white;
  color: #455e50;
  font-size: 12px;
  font-weight: 500
}

.workspace button:hover,dialog button:hover {
  background: #f1f7f3
}

.workspace button.primary,dialog button.primary,.primary {
  background: #176457;
  border-color: #176457;
  color: #fff
}

.workspace button:disabled {
  opacity: .45;
  cursor: default
}

.policy-note {
  font-size: 12px;
  color: #75877b;
  line-height: 1.8;
  margin: 0 0 20px
}

.tabs {
  display: flex;
  gap: 5px;
  margin-bottom: 12px;
  flex-wrap: wrap
}

.workspace .tab {
  border: 0;
  background: transparent;
  border-radius: 0;
  color: #819087;
  padding: 9px 16px;
  border-bottom: 2px solid transparent
}

.workspace .tab.active {
  color: #176457;
  border-bottom-color: #176457;
  font-weight: 700
}

.filters {
  padding: 18px;
  background: white;
  border: 1px solid #e0e8e1;
  border-radius: 8px;
  display: flex;
  align-items: end;
  gap: 12px;
  margin-bottom: 18px
}

.filters #filter-fields {
  display: flex;
  gap: 12px;
  align-items: end;
  flex: 1;
  flex-wrap: wrap
}

.filters label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  font-size: 11px;
  color: #718278;
  min-width: 100px
}

.filters input:not([type=checkbox]),.filters select {
  height: 35px;
  border: 1px solid #dbe4dc;
  border-radius: 5px;
  font-size: 12px;
  padding: 5px 10px;
  background: white;
  width: 150px
}

.filters input[type=text] {
  width: 170px
}

.filter-actions {
  display: flex;
  gap: 7px
}

.notice:empty {
  display: none
}

.notice {
  font-size: 13px;
  background: #e9f4ed;
  padding: 12px;
  border-radius: 6px;
  line-height: 1.8
}

.error,.notice.error {
  color: #a1372e;
  background: #fff2ef
}

.table-card {
  border: 1px solid #dee7df;
  border-radius: 8px;
  background: #fff;
  overflow: hidden
}

.table-scroll {
  overflow: auto;
  max-height: 65vh
}

#data-table {
  border-collapse: collapse;
  width: 100%;
  font-size: 12px;
  white-space: nowrap
}

#data-table th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: #f1f5f2;
  text-align: left;
  border-bottom: 1px solid #dfe7e0;
  padding: 5px 10px
}

#data-table th button {
  background: transparent;
  border: 0;
  font-size: 11px;
  color: #607c6b;
  padding: 8px 0;
  font-weight: 650
}

#data-table td {
  border-bottom: 1px solid #edf1ed;
  padding: 12px 14px;
  max-width: 350px;
  overflow: hidden;
  text-overflow: ellipsis
}

#data-table tr:hover td {
  background: #f6faf7
}

.numeric {
  text-align: right;
  font-variant-numeric: tabular-nums
}

#data-table tfoot {
  background: #edf5ef;
  font-weight: 600
}

.row-actions {
  display: flex;
  gap: 5px
}

.workspace .small-button {
  font-size: 10px;
  padding: 4px 7px;
  white-space: nowrap
}

.workspace .link-button {
  background: transparent;
  border: 0;
  color: #176457;
  font-size: 11px;
  padding: 0;
  text-decoration: underline
}

.pagination {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 13px 16px;
  gap: 15px;
  font-size: 11px;
  color: #839386
}

.pagination div {
  display: flex;
  gap: 6px
}

.empty-state {
  text-align: center!important;
  padding: 50px!important;
  color: #869889
}

.empty-state strong {
  color: #526e5c;
  font-weight: 500
}

.empty-state p {
  font-size: 11px
}

.kpis {
  display: grid;
  grid-template-columns: repeat(4,1fr);
  gap: 14px;
  margin-bottom: 18px
}

.kpis:empty {
  display: none
}

.kpi {
  background: white;
  border: 1px solid #dee7df;
  border-radius: 8px;
  padding: 20px
}

.kpi span {
  font-size: 11px;
  color: #789181;
  display: block
}

.kpi strong {
  display: block;
  font-size: 25px;
  margin: 12px 0;
  color: #174e3a;
  font-weight: 650;
  letter-spacing: -1px
}

.kpi small {
  font-size: 10px;
  color: #8b9c90
}

.import-tools {
  background: #edf4ef;
  padding: 15px;
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
  border-radius: 7px;
  margin-bottom: 16px
}

.import-tools form {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap
}

.import-tools label {
  font-size: 11px;
  color: #6e8475
}

.import-tools input[type=number] {
  width: 90px;
  height: 35px;
  font-size: 12px
}

.import-tools input[type=file] {
  font-size: 12px;
  width: 200px
}

dialog {
  border: 1px solid #d9e5dd;
  border-radius: 12px;
  max-width: 750px;
  width: calc(100% - 36px);
  padding: 24px;
  color: #294b38
}

dialog::backdrop {
  background: #102d2570
}

.dialog-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px
}

.dialog-header h2 {
  font-size: 20px;
  margin: 0
}

.editor-fields {
  display: grid;
  grid-template-columns: repeat(2,1fr);
  gap: 16px
}

.form-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  font-size: 12px
}

.form-field input:not([type=checkbox]),.form-field select,.form-field textarea {
  padding: 10px;
  border: 1px solid #d8e4db;
  border-radius: 5px;
  font-size: 13px;
  width: 100%;
  min-height: 43px;
  font-family: inherit
}

.form-field select[multiple] {
  min-height: 110px
}

.form-field textarea {
  resize: vertical
}

.confirm-line {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 22px;
  font-size: 12px
}

.confirm-line input {
  accent-color: #176457
}

dialog footer {
  display: flex;
  justify-content: end;
  padding-top: 14px
}

dialog .error {
  padding: 10px;
  font-size: 12px
}

dialog .error:empty {
  display: none
}

#detail-body {
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 12px;
  line-height: 1.8;
  max-height: 60vh;
  overflow: auto
}

@media(max-width:1050px) {
  .sidebar {
    width: 210px
  }

  .work-content {
    padding: 20px
  }

  .workspace-header {
    padding: 15px 20px
  }

  .screen-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 0
  }

  .filters {
    align-items: stretch;
    flex-direction: column
  }

  .kpis {
    grid-template-columns: repeat(2,1fr)
  }

}

@media(max-width:700px) {
  .workspace {
    display: block
  }

  .sidebar {
    position: relative;
    height: auto;
    width: 100%;
    padding: 15px
  }

  .sidebar>.brand {
    margin: 0 0 15px
  }

  .sidebar nav {
    display: flex;
    overflow: auto;
    gap: 14px;
    max-height: 175px
  }

  .nav-group {
    min-width: 165px
  }

  .nav-group h2 {
    margin: 3px 10px
  }

  .nav-group a {
    padding: 5px 10px
  }

  .sidebar-footer {
    display: none
  }

  .workspace-header {
    flex-wrap: wrap;
    padding: 12px
  }

  .work-content {
    padding: 16px
  }

  .scope-select,.user-area {
    gap: 6px
  }

  .scope-select select {
    max-width: 160px
  }

  .kpi {
    padding: 14px
  }

  .kpi strong {
    font-size: 21px
  }

  .editor-fields {
    grid-template-columns: 1fr
  }

  .pagination {
    flex-wrap: wrap
  }

  .filters #filter-fields {
    gap: 10px
  }

  .filters input:not([type=checkbox]),.filters select {
    width: 140px
  }

}

:root {
  font-family: "Pretendard","Noto Sans KR","Malgun Gothic",sans-serif;
  color: #182c2a;
  background: #f8faf9;
  font-synthesis: none;
  --green: #176457;
  --muted: #75817d
}

* {
  box-sizing: border-box
}

body {
  margin: 0
}

button,input {
  font: inherit
}

button,a,input {
  -webkit-tap-highlight-color: transparent
}

button {
  cursor: pointer
}

a {
  color: inherit;
  text-decoration: none
}

[hidden] {
  display: none!important
}

.layout {
  display: grid;
  grid-template-columns: 46% 54%;
  min-height: 100svh
}

.intro {
  background: #123d38;
  color: #fff;
  padding: 48px 11%;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden
}

.intro:after {
  content: "";
  position: absolute;
  width: 620px;
  height: 620px;
  border: 1px solid #ffffff09;
  border-radius: 50%;
  right: -370px;
  bottom: -330px;
  pointer-events: none
}

.brand {
  display: flex;
  gap: 12px;
  align-items: center;
  font-size: 24px;
  font-weight: 750;
  letter-spacing: 1px;
  width: fit-content
}

.brand-icon {
  display: grid;
  place-items: center;
  background: #d8eee3;
  color: #184d42;
  border-radius: 10px;
  width: 42px;
  height: 42px;
  font-size: 26px
}

.brand-sub {
  display: block;
  font-size: 10px;
  letter-spacing: 1px;
  font-weight: 400;
  margin-top: 4px;
  opacity: .7
}

.intro-content {
  margin: auto 0;
  padding: 80px 0
}

.eyebrow,.section-label {
  font-size: 11px;
  font-weight: 650;
  letter-spacing: 2px
}

.eyebrow {
  color: #a9ccbd
}

.intro h1 {
  font-size: clamp(36px,3.7vw,56px);
  line-height: 1.35;
  letter-spacing: -2px;
  font-weight: 650;
  margin: 23px 0
}

.intro-content>p {
  color: #b4c9c1;
  font-size: 15px;
  line-height: 1.9;
  letter-spacing: -.3px
}

.flow {
  border: 1px solid #ffffff1c;
  background: #ffffff04;
  border-radius: 14px;
  padding: 23px;
  margin-top: 46px;
  max-width: 390px
}

.flow-top,.flow-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  color: #aec6bc
}

.flow-dot,.small-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #a2d6bc;
  display: inline-block
}

.chart {
  height: 92px;
  display: flex;
  gap: 9px;
  align-items: flex-end;
  padding: 20px 0 0;
  margin-bottom: 17px;
  border-bottom: 1px solid #ffffff15
}

.chart i {
  flex: 1;
  border-radius: 3px 3px 0 0;
  background: #629681;
  height: 35%
}

.chart i:nth-child(2n) {
  height: 55%;
  background: #83b99e
}

.chart i:nth-child(3n) {
  height: 43%
}

.chart i:nth-child(n+7) {
  height: 65%
}

.chart i:nth-child(n+9) {
  height: 80%
}

.chart i:last-child {
  height: 100%;
  background: #b8ddc6
}

.intro-footer {
  font-size: 11px;
  color: #94b5a9;
  display: flex;
  gap: 9px;
  align-items: center;
  margin: 0
}

.login-panel {
  padding: 49px 9% 28px;
  display: flex;
  flex-direction: column;
  background: #fff
}

.panel-top {
  text-align: right;
  font-size: 12px;
  color: #89948f
}

.login-content {
  width: 100%;
  max-width: 380px;
  margin: auto;
  padding: 70px 0
}

.section-label {
  color: var(--green)
}

h2 {
  font-size: 32px;
  letter-spacing: -1px;
  margin: 16px 0 10px
}

.description {
  color: var(--muted);
  font-size: 14px;
  margin: 0 0 38px
}

.field {
  margin-bottom: 22px
}

.field>label {
  display: block;
  font-size: 13px;
  font-weight: 650;
  margin-bottom: 10px
}

input:not([type=checkbox]) {
  width: 100%;
  height: 52px;
  border: 1px solid #dce3df;
  border-radius: 7px;
  background: #fcfdfc;
  padding: 0 16px;
  color: #18352c;
  font-size: 14px;
  transition: border-color .15s
}

input::placeholder {
  color: #a1aaa5
}

input:focus {
  outline: 2px solid #20685828;
  outline-offset: 2px;
  border-color: var(--green)
}

input[aria-invalid=true] {
  border-color: #b94942
}

.password-wrap {
  position: relative
}

.password-wrap input {
  padding-right: 70px
}

.password-wrap button {
  position: absolute;
  right: 13px;
  top: 15px;
  border: 0;
  background: transparent;
  color: #65776f;
  font-size: 12px;
  padding: 4px
}

.remember {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #65736d;
  font-size: 13px;
  cursor: pointer;
  width: fit-content
}

.remember input {
  accent-color: var(--green);
  width: 16px;
  height: 16px;
  margin: 0
}

.submit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 0 20px;
  height: 53px;
  background: var(--green);
  color: white;
  border: 0;
  border-radius: 7px;
  font-size: 15px;
  font-weight: 650;
  margin-top: 26px;
  transition: background .15s
}

.submit:hover {
  background: #104f44
}

.submit:disabled {
  cursor: wait;
  opacity: .65
}

.help {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  border-top: 1px solid #edf0ed;
  padding-top: 24px;
  margin-top: 33px
}

.help-icon {
  border: 1px solid #a9b5ad;
  border-radius: 50%;
  width: 17px;
  height: 17px;
  text-align: center;
  color: #87998f;
  font-size: 11px;
  flex-shrink: 0;
  margin-top: 3px
}

.help p {
  font-size: 12px;
  line-height: 1.9;
  color: #8a958f;
  margin: 0
}

.help strong {
  font-weight: 400;
  color: #596e62
}

.panel-footer {
  display: flex;
  justify-content: space-between;
  color: #a0aaa4;
  font-size: 10px;
  gap: 12px
}

.field-error,.caps {
  color: #ae433a;
  font-size: 12px;
  display: block;
  margin-top: 7px
}

.field-error:empty {
  display: none
}

.error-message {
  font-size: 13px;
  background: #fff3f0;
  color: #a13b31;
  padding: 13px;
  border-radius: 6px;
  margin-top: 18px;
  line-height: 1.6
}

button:focus-visible,a:focus-visible {
  outline: 3px solid #73b9a3;
  outline-offset: 4px
}

.home-header {
  display: flex;
  justify-content: space-between;
  padding: 25px 6%;
  background: white;
  border-bottom: 1px solid #e1e7e3
}

.logout {
  background: white;
  border: 1px solid #d6ded8;
  padding: 10px 20px;
  border-radius: 6px;
  color: #426252
}

.home-content {
  max-width: 1000px;
  margin: 80px auto;
  padding: 0 24px
}

.home-content h1 {
  font-size: 32px;
  letter-spacing: -1px
}

.home-content p {
  color: #75857c;
  line-height: 1.7
}

.home-placeholder {
  background: white;
  border: 1px solid #e1e7e3;
  border-radius: 12px;
  padding: 32px;
  margin-top: 36px
}

.home-placeholder h2 {
  font-size: 24px
}

@media(min-width:1500px) {
  .intro {
    padding-left: 16%;
    padding-right: 16%
  }

}

@media(max-width:850px) {
  .layout {
    grid-template-columns: 40% 60%
  }

  .intro {
    padding: 32px 10%
  }

  .intro h1 {
    font-size: 34px
  }

  .intro-content>p {
    font-size: 13px
  }

  .flow {
    padding: 15px
  }

  .login-panel {
    padding: 32px 9% 24px
  }

  .intro-footer {
    line-height: 1.7
  }

}

@media(max-width:620px) {
  .layout {
    display: block
  }

  .intro {
    padding: 24px
  }

  .intro-content,.intro-footer {
    display: none
  }

  .brand {
    font-size: 21px
  }

  .brand-icon {
    width: 36px;
    height: 36px
  }

  .login-panel {
    min-height: calc(100svh - 90px);
    padding: 25px 24px
  }

  .panel-top {
    display: none
  }

  .login-content {
    padding: 38px 0;
    max-width: 400px
  }

  .panel-footer {
    padding-top: 16px
  }

  .home-content {
    margin-top: 45px
  }

  .home-content h1 {
    font-size: 27px
  }

}

/* 관리 화면: 상단 밀도, 검색 가독성 및 빈 목록 동작 */
.workspace-header {
  padding: 12px 24px
}

.work-content {
  padding: 18px 24px 28px
}

#home-error:empty,.policy-note:empty {
  display: none
}

.screen-heading {
  margin-bottom: 16px
}

.screen-heading h1 {
  margin: 6px 0;
  font-size: 24px
}

.work-content>.section-label {
  display: block;
  margin-bottom: 3px;
  font-size: 12px;
  letter-spacing: .5px
}

.workspace .tabs {
  gap: 8px;
  padding-bottom: 12px;
  border-bottom: 1px solid #dce5e1;
  margin-bottom: 18px
}

/* 탭이 없는 화면에는 빈 탭 영역의 구분선과 여백을 표시하지 않는다. */
.workspace #tabs:empty { display: none; }

.workspace .tab {
  padding: 10px 3px 12px;
  font-size: 13px;
  color: #5f746b
}

.workspace .tab.active {
  border-bottom-width: 3px
}

.filters label {
  font-size: 12px;
  color: #5e7268
}

.filters input:not([type=checkbox]),.filters select {
  height: 38px;
  font-size: 13px
}

.filters input[type=text] {
  width: 240px
}

.list-heading {
  margin: 0 0 10px
}

.list-heading h2 {
  font-size: 15px;
  margin: 0;
  letter-spacing: 0
}

#data-table {
  font-size: 13px
}

#data-table th {
  padding: 8px 16px
}

#data-table th button {
  font-size: 12px;
  color: #536d60
}

#data-table th:last-child {
  color: #536d60
}

.empty-state {
  padding: 42px 20px!important;
  color: #63796b
}

.empty-state strong {
  font-size: 15px;
  color: #304f3e
}

.empty-state p {
  font-size: 13px;
  margin: 8px 0 18px
}

.pagination {
  font-size: 12px;
  color: #61776a
}

.outline-button[aria-disabled=true] {
  opacity: .45;
  cursor: default
}

#data-table .row-actions {
  min-height: 54px
}

.workspace button:focus-visible,.workspace select:focus-visible {
  outline: 3px solid #73b9a3;
  outline-offset: 3px
}

@media(max-width:700px) {
  .work-content {
    padding: 16px
  }

  .workspace-header {
    padding: 12px 16px
  }

  .filters label {
    flex: 1;
    min-width: 0
  }

  .filters input:not([type=checkbox]),.filters input[type=text],.filters select {
    width: 100%
  }

  .filters #filter-fields {
    flex-wrap: wrap
  }

  .filters #filter-fields label {
    flex-basis: 140px
  }

  .workspace .tabs {
    gap: 15px
  }

  .toolbar {
    row-gap: 8px
  }

}

/* 업무 화면 글자 크기: 제목 24 / 탭 15 / 본문 14 / 보조 13 */
.workspace .scope-select label,
.workspace .user-area small {
  font-size: 12px;
  color: #5e7268;
}

.workspace .scope-select select,
.workspace .user-area,
.workspace button,
.workspace .outline-button {
  font-size: 14px;
}

.workspace .list-heading h2 {
  font-size: 16px;
  font-weight: 700;
}

.workspace .filters label {
  font-size: 13px;
  color: #53695d;
}

.workspace .filters input:not([type=checkbox]),
.workspace .filters select {
  font-size: 14px;
}

.workspace .filters input::placeholder {
  color: #748278;
}

.workspace #data-table {
  font-size: 14px;
}

.workspace #data-table th,
.workspace #data-table th button {
  font-size: 13px;
  font-weight: 700;
  color: #486352;
}

.workspace .row-actions {
  align-items: center;
}

.workspace .small-button {
  font-size: 13px;
  padding: 6px 9px;
}

.workspace .pagination {
  font-size: 13px;
  color: #5c7164;
}


.workspace #counterparty-grid{height:clamp(300px,60vh,720px)}
.workspace .screen-menu-icon{width:26px;height:26px;margin-right:9px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.workspace #counterparty-grid .row-actions{display:flex;align-items:center;gap:6px;height:100%}
.workspace .grid-status-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:50px;padding:8px 16px;border:1px solid #dce6e1;border-top:0;border-radius:0 0 6px 6px;background:#f1f6f3}
.workspace .grid-status-bar #workspace-message{display:block;flex:1;min-width:0;margin:0;padding:0;background:transparent;color:#18685b;overflow-wrap:anywhere}
.workspace .grid-status-bar #workspace-message:empty{display:block;min-height:20px}
.workspace .grid-status-bar #workspace-message.error{color:#b42318}
.workspace .grid-status-bar .pagination{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;padding:0;border:0;background:transparent;margin:0}
@media(max-width:650px){.workspace .grid-status-bar{flex-wrap:wrap;gap:8px}.workspace .grid-status-bar #workspace-message{flex-basis:100%}.workspace .grid-status-bar .pagination{margin-left:auto}}

/* 연간계획: 월간계획 집계 전용 */
.workspace.annual-plan-workspace{--monthly-line:#dce5f4;--monthly-text:#14233d;--monthly-accent:#356cbd}
.workspace.annual-plan-workspace .work-content{background:#f3f5fa;padding:12px}
.workspace.annual-plan-workspace #screen-group{display:none}
.workspace.annual-plan-workspace .screen-heading{background:#fff;border:1px solid var(--monthly-line);border-radius:6px;padding:7px 12px;margin-bottom:12px;gap:10px;min-height:58px}
.workspace.annual-plan-workspace .screen-heading h1{display:flex;align-items:center;gap:12px;margin:0;font-size:18px;color:var(--monthly-text)}
.workspace.annual-plan-workspace .screen-heading h1::after{content:'자금계획 › 연간 계획';font-size:11px;font-weight:400;color:#60779c}
.workspace.annual-plan-workspace .toolbar .menu-tool{min-width:42px;padding:4px 7px;gap:3px;font-size:11px;color:var(--monthly-text);white-space:nowrap}
.workspace.annual-plan-workspace .toolbar .menu-tool svg{width:17px;height:17px}
.workspace.annual-plan-workspace .filters{background:#fff;border-color:var(--monthly-line);border-radius:6px;margin-bottom:12px;padding:14px 16px}
.workspace.annual-plan-workspace #filter-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:center;min-width:0}
.workspace.annual-plan-workspace #filter-fields>label,.workspace.annual-plan-workspace .monthly-period{display:grid;grid-template-columns:52px minmax(0,1fr);gap:8px;align-items:center;min-width:0;font-size:12px;color:#60779c;text-align:right}
.workspace.annual-plan-workspace #filter-fields input,.workspace.annual-plan-workspace #filter-fields select{width:100%;min-width:0;height:36px;border:1px solid #c4d3ee;border-radius:3px;padding:5px 7px;color:var(--monthly-text);font-size:12px}
.workspace.annual-plan-workspace .table-card{border-color:var(--monthly-line)}
.workspace #annual-plan-grid{--ag-font-family:'Malgun Gothic',sans-serif;--ag-font-size:13px;--ag-header-background-color:#edf2fb;--ag-border-color:#dce5f4;width:100%}
.workspace #annual-plan-grid .annual-plan-amount{text-align:right;font-variant-numeric:tabular-nums}
.workspace #annual-plan-grid .ag-row-pinned{font-weight:700;background:#edf2fb}
@media(max-width:1000px){.workspace.annual-plan-workspace #filter-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.workspace.annual-plan-workspace #filter-fields{grid-template-columns:minmax(0,1fr)}}

/* 집행 예정은 입출금내역과 동일한 그리드 스타일을 사용하는 조회 화면이다. */
.workspace #pending-grid{--ag-font-family:'Malgun Gothic',sans-serif;--ag-font-size:13px;--ag-header-background-color:#eff5f1;--ag-header-foreground-color:#315b52;--ag-border-color:#dce6e1;--ag-row-border-color:#e6ede9;width:100%;min-height:190px}
.workspace #pending-grid .pending-amount{text-align:right;font-variant-numeric:tabular-nums}
.workspace #pending-grid .ag-row-pinned{font-weight:bold;background:#eff5f1}
.workspace #pending-grid .pending-overdue{color:#b42318;font-weight:600}
.workspace.pending-workspace #filter-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;width:100%;align-items:center}
.workspace.pending-workspace #filter-fields>label,.workspace.pending-workspace .pending-period{display:grid;grid-template-columns:55px minmax(0,1fr);gap:8px;align-items:center;min-width:0}
.workspace.pending-workspace .pending-date-range{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:4px;align-items:center}
.workspace.pending-workspace #filter-fields input,.workspace.pending-workspace #filter-fields select{width:100%;min-width:0;font-size:12px;padding:6px}
@media(max-width:1450px){.workspace.pending-workspace #filter-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.workspace.pending-workspace #filter-fields{grid-template-columns:minmax(0,1fr)}}

.workspace.pending-workspace #filter-fields>label>span,.workspace.pending-workspace .pending-period>span{white-space:nowrap;font-size:13px;text-align:right}

.workspace.pending-workspace .pending-date-range input[type=date]{font-size:11px;padding:6px 2px;letter-spacing:-.3px}
.workspace.pending-workspace .pending-date-range input::-webkit-calendar-picker-indicator{width:12px;margin:0;padding:0}

/* 모든 업무 화면의 조회부: 기간은 한 항목, 라벨은 오른쪽 정렬. */
.workspace #filters{flex-wrap:wrap}
.workspace #filters #filter-fields.standard-filter-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 20px;align-items:center;flex:1 1 100%;width:100%;min-width:0}
.workspace #filters #filter-fields.standard-filter-fields>label,.workspace #filters #filter-fields.standard-filter-fields>.filter-period{display:grid;grid-template-columns:88px minmax(0,1fr);gap:8px;align-items:center;min-width:0;margin:0;font-size:12px}
.workspace #filters #filter-fields.standard-filter-fields>label>span,.workspace #filters #filter-fields.standard-filter-fields>.filter-period>span{text-align:right;line-height:1.4;white-space:normal}
.workspace #filters #filter-fields.standard-filter-fields input,.workspace #filters #filter-fields.standard-filter-fields select{width:100%;min-width:0;height:36px;font-size:12px;text-align:left}
.workspace #filters #filter-fields.standard-filter-fields .filter-date-range{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:4px;align-items:center;min-width:0}
.workspace #filters #filter-fields.standard-filter-fields .quarter-summary-range{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:0;width:100%;min-width:0;align-items:center}
.workspace #filters #filter-fields.standard-filter-fields .filter-date-range input{font-size:11px;padding:5px 2px;letter-spacing:-.3px}
.workspace #filters #filter-fields.standard-filter-fields .filter-date-range input::-webkit-calendar-picker-indicator{width:11px;margin:0;padding:0}
.workspace #filters .filter-actions{margin-left:auto}
@media(max-width:1450px){.workspace #filters #filter-fields.standard-filter-fields{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.workspace #filters #filter-fields.standard-filter-fields{grid-template-columns:minmax(0,1fr)}}

/* 메뉴로 연 업무 화면 탭 */
.workspace .screen-tabs{display:flex;align-items:stretch;gap:4px;overflow-x:auto;min-width:0;padding:0 0 8px;margin:0 0 14px;border-bottom:1px solid #d5e1d9;scrollbar-width:thin}
.workspace .screen-tabs:empty{display:none}
.workspace .screen-tab{display:flex;align-items:center;flex:0 0 auto;border:1px solid #d5e1d9;border-radius:6px 6px 0 0;background:#e6ede9;color:#61766c;max-width:300px}
.workspace .screen-tab.active{background:#fff;border-color:#80aa98;box-shadow:inset 0 3px #18685b;color:#163b43}
.workspace .screen-tab a{display:block;padding:11px 10px 11px 14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:inherit;text-decoration:none}
.workspace .screen-tab.active a{font-weight:700}
.workspace .screen-tab button{flex:0 0 auto;border:0;background:transparent;color:inherit;font-size:18px;line-height:1;padding:4px 7px;margin-right:4px;border-radius:3px;min-height:28px}
.workspace .screen-tab button:hover:not(:disabled){background:#d6e6dd;color:#174e3f}
.workspace .screen-tab button:disabled{opacity:.25;cursor:default}
.workspace .screen-tab a:focus-visible,.workspace .screen-tab button:focus-visible{outline:2px solid #18685b;outline-offset:-2px}

.workspace #daily-balance-grid{--ag-font-family:'Malgun Gothic',sans-serif;--ag-font-size:13px;--ag-header-background-color:#eff5f1;--ag-header-foreground-color:#315b52;--ag-border-color:#dce6e1;--ag-row-border-color:#e6ede9;width:100%;min-height:190px}
.workspace #daily-balance-grid .daily-balance-amount{text-align:right;font-variant-numeric:tabular-nums}
.workspace #daily-balance-grid .ag-row-pinned{font-weight:700;background:#eff5f1}

#analysis-grid{height:auto;width:100%;min-width:0}
#analysis-grid .ag-header-cell-label{justify-content:center}
#analysis-grid .analysis-center{text-align:center}
#analysis-grid .analysis-left{text-align:left}
#analysis-grid .analysis-right{text-align:right;font-variant-numeric:tabular-nums}
.loan-generator{width:min(1100px,calc(100vw - 48px));max-height:90vh;padding:24px;border:1px solid #c9dcd5;border-radius:8px;color:#18383d}
.loan-generator::backdrop{background:#102c3b66}
.loan-generator form{display:block}.loan-generator h3{margin:22px 0 12px}.loan-generator .form-field{display:grid;gap:8px}
.loan-generator select,.loan-generator input{min-width:0;width:100%;padding:9px;border:1px solid #c9dcd5;border-radius:4px;background:white;color:inherit}
.loan-contract-info{display:grid;grid-template-columns:repeat(4,auto 1fr);gap:16px 10px;padding:18px;background:#f2f7f5;border:1px solid #dce9e3;border-radius:5px}
.loan-contract-info dt{font-size:12px;color:#58716c}.loan-contract-info dd{margin:0;font-size:13px}
.loan-generator .editor-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px 22px}.loan-generator .editor-fields label{display:grid;gap:7px}
.loan-generator p,.loan-generator small{font-size:12px;color:#58716c}.loan-generator .error{color:#b3261e}
.loan-preview{max-height:280px;overflow:auto;border:1px solid #dce9e3}.loan-preview table{width:100%;border-collapse:collapse}.loan-preview th{position:sticky;top:0;background:#eef5f2}.loan-preview td,.loan-preview th{padding:10px;border-bottom:1px solid #dce9e3;text-align:right;font-size:13px;white-space:nowrap}
.loan-generator footer{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}
@media(max-width:760px){.loan-contract-info{grid-template-columns:auto 1fr auto 1fr}.loan-generator .editor-fields{grid-template-columns:1fr}}
.loan-generator{max-width:1100px}.loan-generator footer{position:sticky;bottom:-24px;background:#fff;padding:14px 0 10px;z-index:2;border-top:1px solid #e3ece8}

#counterparty-grid .loan-schedule-header .ag-header-cell-label{justify-content:center}

.transaction-select-editor{border-radius:3px}
.transaction-select-editor .search-select-option{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal;padding:8px 10px;min-height:36px}
.transaction-select-editor .search-select-options{background:#fff}

.transaction-loan-dialog{width:min(620px,calc(100vw - 32px));max-height:85vh;overflow:auto}
.transaction-loan-summary{padding:14px;background:#edf5f1;border-radius:5px;color:#173e48}
.transaction-loan-entry{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:16px 0;border-bottom:1px solid #dce9e3}
.transaction-loan-entry .form-field:first-child,.transaction-loan-entry .form-field:nth-child(4){grid-column:1/-1}
.transaction-loan-entry label{min-width:0;display:flex;flex-direction:column;gap:6px}
.transaction-loan-entry select,.transaction-loan-entry input{width:100%;min-width:0}
.transaction-loan-entry>button{justify-self:start}
.transaction-loan-status{font-size:12px;padding:4px 8px;color:#176457;border-color:#bad6cc;line-height:1.4}
@media(max-width:500px){.transaction-loan-entry{grid-template-columns:1fr}}

.transaction-loan-entry select,.transaction-loan-entry input{height:44px;box-sizing:border-box;padding:9px 12px}
.transaction-loan-money{position:relative;display:block;min-width:0}
.transaction-loan-dialog .transaction-loan-money input{padding-right:38px;text-align:right;font-variant-numeric:tabular-nums}
.transaction-loan-unit{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#58716c;pointer-events:none}
.transaction-loan-recommend{font-size:12px;color:#176457;margin:0 0 10px}.transaction-loan-recommend:empty{display:none}
.transaction-loan-schedule-info{grid-column:1/-1;margin:0;color:#58716c;font-size:12px;line-height:1.6}
.transaction-loan-totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;background:#f2f7f5;border-radius:5px;margin:16px 0;padding:14px}
.transaction-loan-totals dt{font-size:12px;color:#58716c}.transaction-loan-totals dd{margin:6px 0 0;text-align:right;font-size:14px;font-variant-numeric:tabular-nums;color:#173e48;overflow-wrap:anywhere}
.transaction-loan-totals dd.error{color:#b3261e}
.transaction-loan-dialog footer{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.transaction-loan-dialog [data-clear]{margin-right:auto}
.transaction-loan-dialog [hidden]{display:none!important}
@media(max-width:500px){.transaction-loan-totals{grid-template-columns:1fr}.transaction-loan-totals>div{display:flex;justify-content:space-between;gap:10px}.transaction-loan-totals dd{margin:0}.transaction-loan-dialog footer{position:sticky;bottom:-24px;background:#fff;padding:12px 0;margin-top:12px;z-index:1}}

.transaction-loan-entry .form-field:nth-child(4){grid-column:auto}
.transaction-loan-entry .form-field:has([name="loan_id"]),.transaction-loan-entry .form-field:has([name="schedule_id"]){grid-column:1/-1}

.loan-opening-dialog{width:min(600px,calc(100vw - 32px));max-height:90vh;overflow:auto}
.loan-opening-contract{padding:15px;background:#edf5f1;border-radius:5px;margin:16px 0}.loan-opening-contract small{display:block;margin-top:6px;font-size:12px;color:#58716c}
.loan-opening-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.loan-opening-fields label{display:flex;flex-direction:column;gap:8px;min-width:0}.loan-opening-fields input,.loan-opening-fields textarea{width:100%;min-width:0}
.loan-opening-reason,.loan-opening-hint{grid-column:1/-1}.loan-opening-hint{font-size:12px;color:#58716c;margin:0}
.loan-opening-money{position:relative}.loan-opening-dialog .loan-opening-money input{text-align:right;padding-right:38px;font-variant-numeric:tabular-nums}.loan-opening-money>span{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#58716c}
.loan-opening-effect{display:grid;grid-template-columns:1fr auto;gap:10px;margin:18px 0;padding:14px 0;border-top:1px solid #dce9e3;border-bottom:1px solid #dce9e3;font-size:13px}.loan-opening-effect dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.loan-opening-dialog footer{display:flex;gap:8px;justify-content:flex-end}
@media(max-width:500px){.loan-opening-fields{grid-template-columns:1fr}}

.workspace.deposit-workspace .work-content,.workspace.deposit-workspace .table-card{min-width:0;max-width:100%}
.workspace.deposit-workspace #counterparty-grid{min-width:0;max-width:100%}
.workspace.deposit-workspace #counterparty-grid .ag-header-cell-label{white-space:normal}


/* 모든 AG Grid 화면: 실제 상단/하단 크기를 제외한 나머지를 배분한다. */
.workspace.ag-grid-workspace .work-content,.workspace.ag-grid-workspace .table-card{min-width:0;max-width:100%}
@media(min-width:701px){
 .workspace.ag-grid-workspace{height:100dvh;min-height:0}
 .workspace.ag-grid-workspace .workspace-main{display:flex;flex-direction:column;height:100%;min-height:0}
 .workspace.ag-grid-workspace .workspace-header{flex:0 0 auto}
 .workspace.ag-grid-workspace .work-content{display:flex;flex-direction:column;flex:1 1 0;min-height:0}
 .workspace.ag-grid-workspace .work-content>*{flex:0 0 auto}
 .workspace.ag-grid-workspace .work-content>.table-card{flex:1 1 0;min-height:0}
 .workspace.ag-grid-workspace :is(#report-grid,#counterparty-grid,#transaction-grid,#monthly-plan-grid,#annual-plan-grid,#pending-grid,#daily-balance-grid,#analysis-grid,#audit-grid){height:100%;min-height:0;width:100%;min-width:0}
 .workspace.ag-grid-workspace .grid-status-bar{flex:0 0 auto}
}
@media(max-width:700px){.workspace.ag-grid-workspace :is(#report-grid,#counterparty-grid,#transaction-grid,#monthly-plan-grid,#annual-plan-grid,#pending-grid,#daily-balance-grid,#analysis-grid,#audit-grid){height:55dvh;min-height:240px}}

/* Keep dashboard summaries compact so the read-only grid retains viewport space. */
@media(min-width:701px){
 .workspace.dashboard-workspace .kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:0}
 .workspace.dashboard-workspace .kpi{padding:10px 12px;min-width:0}
 .workspace.dashboard-workspace .kpi strong{font-size:20px;margin:6px 0;overflow-wrap:anywhere}
}
.calendar-alert-card{background:var(--surface,#fff);border:1px solid #d6e3dc;border-radius:6px;padding:12px;text-align:left;color:inherit}
.calendar-alert-card strong{display:block;font-size:23px;margin:5px 0}.calendar-alert-card small{display:block;font-size:11px}.calendar-alert-card[aria-pressed=true]{outline:2px solid #19695c;outline-offset:-2px;background:#edf5f0}
.calendar-late{color:#b42318}.calendar-soon{color:#956114}.calendar-detail-button{padding:3px 10px;margin-top:5px}.calendar-detail-dialog{width:min(540px,calc(100vw - 32px));border:1px solid #d6e3dc;border-radius:8px;padding:24px}.calendar-detail-dialog dl{display:grid;grid-template-columns:1fr 1fr;gap:12px}.calendar-detail-dialog dd{text-align:right;margin:0}.calendar-detail-dialog footer{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}
@media(min-width:701px){.workspace.calendar-workspace .kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:0}}

.workspace #filters #filter-fields.standard-filter-fields>label.calendar-completed-filter{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;justify-self:stretch;gap:8px;min-height:36px;padding:0;margin:0}
.workspace #filters #filter-fields.standard-filter-fields>label.calendar-completed-filter>input[type=checkbox]{appearance:auto;width:16px;height:16px;min-width:16px;flex:0 0 16px;margin:0;padding:0;accent-color:#19695c}
.workspace #filters #filter-fields.standard-filter-fields>label.calendar-completed-filter>span{width:auto;text-align:left;white-space:nowrap}
.workspace .calendar-detail-cell{display:flex;align-items:center;justify-content:center;padding:0 8px}
.workspace .calendar-detail-cell .ag-cell-wrapper,.workspace .calendar-detail-cell .ag-cell-value{display:flex;align-items:center;justify-content:center;height:100%}
.workspace .calendar-detail-cell button.calendar-detail-button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:28px;min-height:28px;line-height:1;padding:0 12px;margin:0;font-size:12px;vertical-align:middle}

/* All AG Grid header labels and semantic cell alignment share one policy. */
.workspace .ag-header-cell-label,.workspace .ag-header-group-cell-label{justify-content:center!important;text-align:center}
.workspace .ag-header-cell-text{flex:0 1 auto;text-align:center!important}
.workspace .ag-cell.fms-align-center{text-align:center!important}
.workspace .ag-cell.fms-align-left{text-align:left!important}
.workspace .ag-cell.fms-align-right{text-align:right!important}
.workspace .ag-cell.fms-align-center .ag-cell-wrapper,.workspace .ag-cell.fms-align-center .ag-cell-value{justify-content:center;text-align:center}
.workspace .ag-cell.fms-align-left .ag-cell-wrapper,.workspace .ag-cell.fms-align-left .ag-cell-value{justify-content:flex-start;text-align:left}
.workspace .ag-cell.fms-align-right .ag-cell-wrapper,.workspace .ag-cell.fms-align-right .ag-cell-value{justify-content:flex-end;text-align:right}

.workspace .ag-cell.financial-connection-cell{display:flex;align-items:center;justify-content:center;padding:0 8px}
.workspace .financial-connection-cell .ag-cell-wrapper,.workspace .financial-connection-cell .ag-cell-value,.workspace .financial-connection-cell .ag-cell-value>span{display:flex;align-items:center;justify-content:center;gap:4px;height:100%}
.workspace .financial-connection-cell button.transaction-loan-status{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:28px;min-height:28px;line-height:1;padding:0 10px;margin:0;font-size:12px;vertical-align:middle;white-space:nowrap}
.workspace .ag-cell.financial-connection-cell{padding-top:0!important;padding-bottom:0!important;line-height:normal}
.workspace .financial-connection-cell>span{display:flex;align-items:center;justify-content:center;gap:4px;height:100%;width:100%}
.forecast-chart-panel{background:white;border:1px solid #d7e3dc;border-radius:5px;padding:10px 12px}.forecast-chart-panel svg{display:block;width:100%;height:120px}.forecast-chart-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.forecast-chart-controls label{display:flex;align-items:center;gap:6px;flex-direction:row;font-size:12px}.forecast-chart-controls input[type=checkbox]{width:16px;height:16px;margin:0}.forecast-chart-controls select,.forecast-chart-controls button{padding:3px 8px;min-height:28px;font-size:12px}.forecast-detail-dialog{width:min(800px,calc(100vw - 30px));max-height:85dvh;overflow:auto;border:1px solid #d7e3dc;border-radius:8px;padding:24px}.forecast-detail-list section{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #d7e3dc;padding:8px 0}.forecast-detail-list section p{margin:0}.forecast-detail-dialog h2{font-size:20px}.forecast-detail-list button{white-space:nowrap}.forecast-chart-controls .policy-note{margin:0;font-size:11px}
@media(min-width:701px) and (max-height:800px){.workspace.dashboard-workspace .kpi{padding:6px 10px}.workspace.dashboard-workspace .kpi strong{font-size:18px;margin:3px 0}.forecast-chart-panel svg{height:85px}.forecast-chart-panel{padding:6px 10px}}
@media(min-width:701px) and (max-height:800px){.workspace.dashboard-workspace .kpi small{display:none}.forecast-chart-panel svg{height:65px}.forecast-chart-controls .policy-note{display:none}.forecast-chart-panel{padding:4px 10px}.forecast-chart-controls{gap:6px}.forecast-chart-panel>strong{font-size:12px}}
.workspace #daily-balance-grid.dashboard-overview{overflow:auto;padding:0;border:0;background:transparent}.dashboard-warning{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px;background:white;border:1px solid #d7e3dc;border-left:3px solid #19675b;border-radius:5px;margin-bottom:12px}.dashboard-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-bottom:12px}.dashboard-panel{background:white;border:1px solid #d7e3dc;border-radius:5px;padding:12px;min-width:0}.dashboard-panel h3{margin:0 0 10px;font-size:15px}.dashboard-panel select{padding:4px;font-size:12px}.dashboard-event{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #d7e3dc;padding:9px 0;font-size:12px}.dashboard-event button{padding:3px 6px;white-space:nowrap}.dashboard-panel button{font-size:12px}.dashboard-overview .dashboard-mini-grid{min-height:0!important}.dashboard-overview>.policy-note{margin:10px 0}.dashboard-event span{min-width:0}.dashboard-panel>div:has(>.dashboard-event){max-height:180px;overflow:auto}@media(max-width:1000px){.dashboard-columns{grid-template-columns:1fr}.dashboard-warning{flex-wrap:wrap}}
.workspace #filters #filter-fields.standard-filter-fields>.dashboard-warning{grid-column:2 / -1;display:flex;align-items:center;justify-content:flex-start;gap:18px;border:0;background:transparent;padding:0;margin:0;min-width:0;font-size:12px;flex-wrap:wrap}
.workspace #filters .dashboard-warning button{height:32px;min-height:32px;padding:4px 12px;white-space:nowrap;font-size:12px}
@media(max-width:700px){.workspace #filters #filter-fields.standard-filter-fields>.dashboard-warning{grid-column:1 / -1}}

/* Allocate remaining dashboard height to monthly plan comparison. */
@media(min-width:1001px){
 .workspace #daily-balance-grid.dashboard-overview{display:flex;flex-direction:column;gap:12px;overflow:auto}
 .dashboard-overview>.dashboard-columns{flex:0 0 auto;margin-bottom:0}
 .dashboard-overview>.dashboard-plan-panel{display:flex;flex-direction:column;flex:1 0 160px;min-height:160px}
 .dashboard-overview>.dashboard-plan-panel>.dashboard-mini-grid{height:auto!important;flex:1 1 0;min-height:110px!important}
 .dashboard-overview>.policy-note{flex:0 0 auto;margin:0}
 .dashboard-overview .dashboard-columns .dashboard-mini-grid{height:180px!important}
 .dashboard-overview .dashboard-panel>div:has(>.dashboard-event){max-height:140px}
}
@media(min-width:1001px) and (max-height:850px){
 .dashboard-overview .dashboard-columns .dashboard-mini-grid{height:150px!important}
 .dashboard-overview .dashboard-panel>div:has(>.dashboard-event){max-height:100px}
 .dashboard-overview .dashboard-panel{padding:8px 12px}
 .dashboard-overview .dashboard-panel h3{margin-bottom:6px}
}
.workspace.dashboard-workspace .grid-status-bar:has(#record-count:empty):has(#workspace-message:empty){display:none}
.dashboard-plan-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.dashboard-plan-heading h3{margin:0!important;flex:0 0 auto}
.dashboard-plan-heading>.policy-note{margin:0;flex:1 1 400px;text-align:right;font-size:11px}
@media(max-width:700px){.dashboard-plan-heading>.policy-note{text-align:left;flex-basis:100%}}
@media(min-width:1001px){
 .workspace #daily-balance-grid.dashboard-overview{display:flex;flex-direction:column;gap:12px;overflow:hidden;min-height:0}
 .dashboard-overview>.dashboard-columns{flex:1 1 0;min-height:0;margin:0;align-items:stretch}
 .dashboard-overview>.dashboard-columns>.dashboard-panel{display:flex;flex-direction:column;min-height:0;overflow:hidden}
 .dashboard-overview .dashboard-columns .dashboard-mini-grid{height:auto!important;flex:1 1 0;min-height:0!important}
 .dashboard-overview>.dashboard-plan-panel{flex:1 1 0;min-height:0;overflow:hidden}
 .dashboard-overview>.dashboard-plan-panel>.dashboard-mini-grid{height:auto!important;flex:1 1 0;min-height:0!important}
 .dashboard-overview .dashboard-panel>div:has(>.dashboard-event){flex:1 1 0;min-height:0;max-height:none;overflow:auto;margin:6px 0}
 .dashboard-overview .dashboard-panel>h3,.dashboard-overview .dashboard-panel>select,.dashboard-overview .dashboard-panel>button,.dashboard-plan-heading{flex:0 0 auto}
 .dashboard-overview .dashboard-panel>select{align-self:flex-start}
 .dashboard-overview .dashboard-panel>button{align-self:flex-start}
}
@media(min-width:1001px){.workspace #daily-balance-grid.dashboard-overview{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:minmax(0,1fr)}}
@media(min-width:701px){.workspace.dashboard-overview-workspace .work-content{padding-bottom:0}}
.dashboard-event-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto;margin-bottom:8px;flex-wrap:wrap}
.dashboard-event-heading h3{margin:0!important}
.dashboard-event-heading select{width:auto;max-width:100%;padding:4px 8px;font-size:12px}
/* Reveal the workspace background in the gaps between dashboard panels. */
.workspace.dashboard-overview-workspace .work-content>.table-card{background:transparent;border:0;border-radius:0}
.workspace.dashboard-overview-workspace #daily-balance-grid.dashboard-overview,.workspace.dashboard-overview-workspace .dashboard-columns{background:transparent}
.dashboard-event-description{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
.dashboard-event-description strong{font-size:12px;font-weight:500;overflow-wrap:anywhere}
.dashboard-event-description small{font-size:11px;color:#617a71}
.dashboard-event-heading>button{border:0;background:transparent;padding:0;color:#19675b;text-decoration:underline;text-underline-offset:3px}
.dashboard-event-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:0 0 auto;margin-bottom:6px}
.dashboard-event-controls label{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:12px}
.dashboard-event-controls select{width:auto;min-width:0;padding:4px 8px;font-size:12px}
.dashboard-event-controls small{font-size:11px;color:#617a71;white-space:nowrap}
.dashboard-event-badge{flex:0 0 auto;background:#edf5f0;border-radius:3px;padding:3px 6px;font-size:11px;white-space:nowrap}
.dashboard-event button{border:0;background:transparent;color:#19675b;text-decoration:underline;text-underline-offset:3px;padding:2px;font-size:12px}
.dashboard-event-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-left:auto}
.dashboard-event-actions select{width:auto;max-width:100%;padding:4px 8px;font-size:12px}
.dashboard-event-actions>button{border:0;background:transparent;padding:0;color:#19675b;text-decoration:underline;text-underline-offset:3px}
.dashboard-event-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.dashboard-event-title select{width:auto;max-width:100%;padding:4px 8px;font-size:12px}
/* 입출금에서 월간계획 선택 등록 */
.monthly-plan-dialog{width:min(1400px,96vw);max-width:96vw;padding:20px;border:1px solid var(--border,#d7e3df);border-radius:7px;}
.monthly-plan-dialog .monthly-plan-dialog-filters{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:16px 0;}
.monthly-plan-dialog-filters label{display:flex;align-items:center;gap:10px;white-space:nowrap;}
.monthly-plan-dialog-filters input{width:auto;min-width:145px;}
.monthly-plan-dialog-filters span{margin-left:auto;color:#526968;font-size:12px;}
.monthly-plan-dialog-grid{height:350px;width:100%;}
.monthly-plan-dialog footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;}
.monthly-plan-dialog [data-summary]{margin-right:auto;}
.monthly-plan-dialog .policy-note{margin:12px 0;}
.search-combo{position:relative;display:inline-flex;align-items:center;width:100%;min-width:0;flex:1 1 auto}
.search-combo>select.search-combo-native{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;opacity:0!important;pointer-events:none!important;margin:0!important}
.search-combo>input.search-combo-input{width:100%;min-width:0;box-sizing:border-box;padding-right:24px;background-color:white}
.search-combo:not(.search-combo-multiple)::after{content:'⌄';position:absolute;right:9px;pointer-events:none;color:#56756b;font-size:14px}
.search-combo:has(>input:disabled){opacity:.6}
.search-combo-list{position:fixed;z-index:10050;box-sizing:border-box;overflow:auto;background:#fff;border:1px solid #9bb7ac;border-radius:4px;box-shadow:0 5px 16px #133e3429;color:#153e35;font-size:13px;text-align:left;font-weight:400}
.search-combo-list [role=option],.search-combo-empty{padding:9px 12px;white-space:normal;overflow-wrap:anywhere;cursor:pointer}
.search-combo-list [role=option]:hover,.search-combo-list [aria-selected=true]{background:#e2f0e8}
.search-combo-empty{color:#70847b;cursor:default}
.search-combo-multiple{flex-direction:column;align-items:stretch;gap:5px}
.workspace .scope-select>.search-combo{width:300px}
.workspace .scope-select>label{flex:0 0 auto;white-space:nowrap}
.workspace .scope-select>.search-combo>input{min-height:0;height:36px;padding:8px 24px 8px 8px;border:1px solid #d7e1d9;border-radius:5px;font-size:14px}
@media(max-width:700px){.workspace .scope-select>.search-combo{width:160px;max-width:calc(100vw - 60px)}}
.workspace.import-workspace #filters{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 16px;margin-top:0;}
.workspace.import-workspace #filters #filter-fields.standard-filter-fields{display:flex;align-items:center;gap:20px;flex:1;flex-wrap:wrap;}
.workspace.import-workspace #filters #filter-fields.standard-filter-fields>label{display:flex;align-items:center;gap:8px;flex:1;min-width:180px;}
.workspace.import-workspace #filters #filter-fields.standard-filter-fields>label>span{width:auto;white-space:nowrap;}
.workspace.import-workspace #filters .filter-actions{margin:0;align-self:center;}
.workspace.import-workspace #list-heading{margin-top:20px;}
.workspace #tabs.icon-card-tabs.audit-card-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));}
.workspace #tabs.icon-card-tabs.audit-card-tabs .tab{min-width:0;}
.workspace.audit-workspace .work-content{padding-bottom:0;}
.workspace.audit-workspace .grid-status-bar{margin-bottom:0;}

.annual-ag-grid .ag-cell.annual-section-span{display:flex;align-items:center;justify-content:center;background:#fff}

/* 건수 표시 아래 여백을 제거하고 확보한 높이는 공통 flex 그리드에 배분한다. */
.workspace#home-view .work-content{padding-bottom:0}
.workspace .grid-status-bar{margin-bottom:0}

.workspace #report-grid{width:100%;min-width:0;--ag-font-family:'Malgun Gothic',sans-serif;--ag-font-size:13px;--ag-header-background-color:#eff5f1;--ag-border-color:#dce6e1}

#import-preview-grid{width:100%;height:420px;min-width:0;--ag-font-size:13px}

.workspace .ag-cell.daily-flow-negative{color:#b42318;font-weight:700}


.annual-chart{margin:0 0 18px;padding:14px 16px;background:#fff;border:1px solid #d5e1d9;border-radius:8px;min-width:0}
.annual-chart-header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.annual-chart-header h2{font-size:16px;margin:0}.annual-chart-header>div{display:flex;gap:8px}.annual-chart-header button,.annual-chart-periods button{padding:5px 10px;min-height:30px;font-size:12px;background:#f1f6f3;color:#163b43;border:1px solid #d5e1d9}
.annual-chart-legend{display:flex;gap:20px;margin:12px 0 4px;font-size:12px}.annual-chart-legend span{display:flex;gap:6px;align-items:center}.annual-chart-legend i{width:14px;height:8px;display:inline-block}.annual-chart-svg{display:block;width:100%;height:auto;max-height:300px}.annual-chart-svg text{font:12px 'Malgun Gothic',sans-serif;fill:#315b52}.annual-chart-detail{font-size:12px;line-height:1.6;margin:8px 0;font-variant-numeric:tabular-nums}.annual-chart-periods{display:flex;gap:4px;flex-wrap:wrap}.annual-chart .annual-explanation{margin-bottom:0}.annual-ag-grid .annual-chart-selected .ag-cell{background:#dcefe8!important}.annual-chart [hidden]{display:none!important}

/* 그래프는 스크롤 영역 밖에 두고 종합표와 계약 내역만 함께 스크롤한다. */
#annual-funds-view{min-width:0}
.annual-funds-scroll{min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain}
@media(min-width:701px){
 .workspace.annual-funds-workspace{height:100dvh;min-height:0}
 .workspace.annual-funds-workspace .workspace-main{display:flex;flex-direction:column;height:100%;min-height:0}
 .workspace.annual-funds-workspace .workspace-header{flex:0 0 auto}
 .workspace.annual-funds-workspace .work-content{display:flex;flex-direction:column;flex:1 1 0;min-height:0}
 .workspace.annual-funds-workspace .work-content>*{flex:0 0 auto}
 .workspace.annual-funds-workspace #annual-funds-view{display:flex;flex-direction:column;flex:1 1 0;min-height:0}
 #annual-funds-view>.annual-chart{flex:0 0 auto}
 #annual-funds-view>.annual-funds-scroll{flex:1 1 0}
}
@media(max-width:700px){.annual-funds-scroll{max-height:55dvh}}
@media(min-width:701px){
 .workspace.annual-funds-workspace #annual-funds-view{container-type:size}
 .workspace.annual-funds-workspace .annual-chart-svg{max-height:clamp(40px,calc(100cqh - 230px),260px)}
}

.annual-chart-plot{position:relative}
.annual-chart-tooltip{position:absolute;top:0;transform:translateX(-50%);max-width:90%;padding:7px 10px;border-radius:5px;background:#163b43;color:#fff;font-size:12px;pointer-events:none;z-index:2;box-shadow:0 2px 6px #0002;overflow-wrap:anywhere}

.workspace #report-grid.project-sales-entry{display:flex;flex-direction:column;gap:16px;overflow:auto;padding:14px;background:#f3f7f5}
.project-sales-entry>.project-sales-metrics,.project-sales-entry>.project-sales-section{flex:0 0 auto;min-width:0;width:100%}
.project-sales-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.project-sales-metrics>div{background:white;border:1px solid #d7e4de;padding:12px;border-radius:5px}.project-sales-metrics span{display:block;font-size:11px;color:#627c72}.project-sales-metrics strong{display:block;font-size:19px;margin-top:7px;color:#236c5c}
.project-sales-section h2{font-size:15px;margin:0 0 10px;color:#1c5448}.project-sales-section .project-sales-detail{width:100%;min-width:0}
@media(max-width:700px){.project-sales-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.project-sales-metrics strong{font-size:15px}}

.workspace #report-grid.maintenance-sales{display:flex;flex-direction:column;gap:12px;overflow:auto;padding:14px;background:#f3f7f5}
.maintenance-sales>h2{font-size:15px;margin:0;flex:0 0 auto;color:#1c5448}.maintenance-entry{display:grid;grid-template-columns:minmax(240px,1.6fr) minmax(140px,1fr) minmax(140px,1fr) minmax(200px,1.2fr) 110px;gap:16px;align-items:center;background:#fff;border:1px solid #d7e4de;border-radius:5px;padding:16px;flex:0 0 auto}
.maintenance-entry label{display:flex;gap:10px;align-items:center;font-size:12px;min-width:0}.maintenance-entry label>span:first-child:not(.search-combo){white-space:nowrap;color:#617c72}.maintenance-entry input,.maintenance-entry select{width:100%;min-width:0;height:35px;border:1px solid #d7e4de;border-radius:4px;background:#fff;padding:7px;font:12px 'Malgun Gothic';color:#234f46}.maintenance-entry .maintenance-apply{height:35px;border:0;border-radius:4px;background:#226e5b;color:#fff;font-size:12px;cursor:pointer}.maintenance-entry button:disabled{opacity:.5;cursor:default}
.maintenance-sales>.maintenance-grid{flex:1 0 260px;min-height:260px;width:100%}
@media(max-width:1300px){.maintenance-entry{grid-template-columns:repeat(2,minmax(0,1fr))}.maintenance-entry label:first-child{grid-column:1/-1}}@media(max-width:700px){.maintenance-entry{grid-template-columns:1fr;gap:12px;padding:12px}.maintenance-entry label:first-child{grid-column:auto}}

.maintenance-entry input[name=maintenance_amount]{text-align:right}


.purchase-account-dialog{width:min(620px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:90dvh;overflow:auto}
.purchase-account-dialog .editor-fields{grid-template-columns:1fr 2fr}
.purchase-account-dialog .form-field{min-width:0}
.purchase-account-list{max-height:40dvh;overflow:auto;margin-top:16px}
.purchase-account-list table{width:100%;table-layout:fixed;border-collapse:collapse}
.purchase-account-list th{position:sticky;top:0;background:#edf5f0;text-align:center}
.purchase-account-list th:first-child{width:110px}
.purchase-account-list td,.purchase-account-list th{padding:10px;border-bottom:1px solid #d7e3dc;overflow-wrap:anywhere}
.purchase-account-list td:first-child{text-align:center}
@media(max-width:500px){.purchase-account-dialog{padding:16px}.purchase-account-dialog .editor-fields{grid-template-columns:1fr}.purchase-account-dialog .dialog-header h2{font-size:20px}}
