.other-meal-description {
  grid-template-columns: 110px 1fr;
  align-items: center;
}

.other-meal-table th:nth-child(3) {
  width: 130px;
}

.other-meal-input-row input[type="date"] {
  min-width: 128px;
  padding-left: 8px;
  padding-right: 5px;
}

.other-meal-save-check {
  width: 18px !important;
  height: 18px !important;
  margin: auto;
  accent-color: var(--orange);
}

.select-all-other-meals {
  width: 18px;
  height: 18px;
  margin: auto;
  accent-color: var(--orange);
  cursor: pointer;
}

.other-meal-table th:nth-child(9),
.other-meal-table th:nth-child(10) {
  width: 52px;
}

.other-meal-delete button {
  border: 1px solid var(--danger);
  background: #fff;
  color: var(--danger);
  padding: 6px 8px;
  cursor: pointer;
}

.other-meal-delete button:hover {
  background: var(--danger);
  color: #fff;
}

.sortable-other-meal-head {
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.other-meal-input-row.dirty td,
.other-meal-edit-row.dirty td {
  background: #fff1e6 !important;
}

.other-meal-edit-row input,
.other-meal-edit-row select {
  height: 42px;
  border: 0;
  background: transparent;
  padding: 7px;
  text-align: center;
}

.other-meal-edit-row input:focus,
.other-meal-edit-row select:focus {
  background: #fff8f4;
}

.workspace.lodging-sheet-mode {
  grid-template-columns: 245px minmax(0, 1fr);
  width: 100%;
}

.workspace.lodging-full-page-mode {
  grid-template-columns: minmax(0, 1fr);
}

.workspace.lodging-full-page-mode > .steps {
  display: none;
}

.workspace.lodging-full-page-mode > .workarea,
.workspace.lodging-full-page-mode.lodging-sheet-mode > .workarea {
  width: 100vw;
  max-width: none;
  padding-top: 0;
  padding-left: 28px;
  padding-right: 28px;
}

/* 숙박정보는 표 자체가 화면의 제목 역할을 하므로 상단 타이틀을 비운다. */
.workspace.lodging-full-page-mode .workhead {
  display: none;
}

.workspace.lodging-full-page-mode .step-footer .head-totals {
  display: flex;
  margin-right: auto;
}

.workspace.lodging-full-page-mode .step-footer {
  left: 0;
}

.workspace.lodging-full-page-mode .lodging-matrix th:first-child,
.workspace.lodging-full-page-mode .lodging-matrix td:first-child {
  left: 0;
}

.workspace.lodging-full-page-mode .lodging-matrix th:nth-child(2),
.workspace.lodging-full-page-mode .lodging-matrix td:nth-child(2) {
  left: 92px;
}

.workspace.lodging-sheet-mode > .workarea {
  width: calc(100vw - 245px);
  max-width: none;
  padding-left: 28px;
  padding-right: 28px;
  overflow: visible;
}

.lodging-spreadsheet {
  width: max-content;
  min-width: 100%;
  padding: 0;
  overflow: visible;
}

.lodging-spreadsheet table {
  width: max-content;
  min-width: 1450px;
  table-layout: fixed;
}

.lodging-spreadsheet th:nth-child(1) { width: 135px; }
.lodging-spreadsheet th:nth-child(2) { width: 125px; }
.lodging-spreadsheet th:nth-child(3) { width: 150px; }
.lodging-spreadsheet th:nth-child(4) { width: 180px; }
.lodging-spreadsheet th:nth-child(5) { width: 110px; }
.lodging-spreadsheet th:nth-child(6) { width: 120px; }
.lodging-spreadsheet th:nth-child(7) { width: 95px; }
.lodging-spreadsheet th:nth-child(8) { width: 280px; }

.lodging-spreadsheet th,
.lodging-spreadsheet td {
  vertical-align: middle;
}

.lodging-spreadsheet .sheet-cell {
  width: 100%;
  min-width: 0;
  height: 36px;
  border: 0;
  background: transparent;
  padding: 7px;
}

.lodging-spreadsheet .sheet-cell:focus {
  outline: 2px solid var(--orange);
  background: #fff8f4;
}

.lodging-spreadsheet .pasted-cell {
  background: #fff1e6;
}

.draggable-other-meal {
  cursor: grab;
}

.draggable-other-meal.dragging {
  opacity: .35;
}

.lodging-matrix-page {
  width: max-content;
  min-width: 100%;
  padding: 0;
}

.lodging-matrix {
  width: max-content;
  min-width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

.lodging-matrix th,
.lodging-matrix td {
  border: 1px solid var(--navy);
  text-align: center;
  vertical-align: middle;
}

.lodging-matrix th:first-child,
.lodging-matrix td:first-child {
  position: sticky;
  left: 245px;
  z-index: 4;
  width: 92px;
  min-width: 92px;
  background: #fff;
}

.lodging-matrix th:nth-child(2),
.lodging-matrix td:nth-child(2) {
  position: sticky;
  left: 337px;
  z-index: 4;
  width: 105px;
  min-width: 105px;
  background: #fff;
  border-right: 4px double var(--navy);
}

.lodging-matrix tbody tr.lodging-rest-row > td {
  background: #fff0f4;
}

.lodging-matrix tbody tr.lodging-travel-row > td {
  background: #edf6ff;
}

.lodging-matrix tbody tr.lodging-rest-row > td.lodging-matrix-cell.multi-selected,
.lodging-matrix tbody tr.lodging-travel-row > td.lodging-matrix-cell.multi-selected {
  background: #dbeafe;
}

.lodging-matrix thead th {
  top: 64px;
  z-index: 5;
  min-width: 190px;
}

.lodging-matrix thead th:first-child,
.lodging-matrix thead th:nth-child(2) {
  background: var(--navy);
  color: #fff;
  z-index: 7;
}

.lodging-person-head {
  width: 100%;
  border: 0;
  background: transparent;
  color: #fff;
  cursor: pointer;
  font-weight: 700;
}

.lodging-person-head small {
  display: block;
  margin-top: 3px;
  opacity: .65;
  font-size: 10px;
}

.lodging-matrix-cell {
  min-width: 190px;
  height: 70px;
  padding: 8px;
  cursor: context-menu;
  background: #fff;
}

.lodging-matrix-cell span,
.lodging-matrix-cell strong {
  display: block;
}

.lodging-matrix-cell strong {
  margin-top: 4px;
  font-size: 16px;
}

.lodging-matrix-cell.inactive {
  background: #f5f5f5;
}

.lodging-matrix-cell.selected {
  outline: 3px solid var(--orange);
  outline-offset: -3px;
}

.lodging-matrix-cell.multi-selected {
  outline: 3px solid var(--orange);
  outline-offset: -3px;
  background: #fff1e6;
}

.batch-lodging-actions {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding-top: 8px;
  border-top: 1px solid var(--line);
}

.lodging-matrix thead th:not(:first-child):not(:nth-child(2)),
.lodging-matrix-cell {
  min-width: 106px;
  width: 106px;
}

.lodging-matrix-cell {
  height: 53px;
  padding: 3px 5px;
  line-height: 1.05;
}

.lodging-matrix-cell .lodging-room-no,
.lodging-matrix-cell strong {
  margin-top: 2px;
}

.lodging-matrix-cell strong {
  font-size: 12px;
  white-space: nowrap;
}

.lodging-matrix-cell strong {
  margin-top: 2px;
  font-size: 14px;
}

.lodging-matrix-cell.dirty {
  background: #fff1e6;
}

.lodging-setting-actions {
  display: flex;
  justify-content: flex-start;
  padding-top: 4px;
  border-top: 1px solid var(--line);
}

.lodging-type-price-row,
.lodging-room-currency-row {
  align-items: end;
}

.other-meal-table th:nth-child(3) { width: 130px; }
.other-meal-table th:nth-child(4) { width: 135px; }
.other-meal-table th:nth-child(7) { width: 62px; }
.other-meal-table [name="frequency"] {
  height: 42px;
  border: 0;
  background: transparent;
  padding: 7px;
  text-align: center;
}

/* 기타식비는 스프레드시트처럼 한 줄에 최대한 많은 내용을 표시한다. */
.other-meal-table th,
.other-meal-table td {
  padding: 4px 5px;
  white-space: nowrap;
}

.other-meal-table td input,
.other-meal-table td select,
.other-meal-table .selected-participant-names {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.other-meal-table th:nth-last-child(1),
.other-meal-table th:nth-last-child(2),
.other-meal-table td:nth-last-child(1),
.other-meal-table td:nth-last-child(2) {
  width: 38px;
  min-width: 38px;
  padding: 0;
}

.other-meal-table .other-meal-actions,
.other-meal-table .other-meal-delete {
  padding: 0;
  line-height: 1;
}

.other-meal-table .other-meal-actions button,
.other-meal-table .other-meal-delete button {
  width: 100%;
  min-width: 0;
  height: 32px;
  margin: 0;
  padding: 0;
  border: 0;
  line-height: 1;
}

.other-meal-table [name="frequency"] {
  width: 48px;
  min-width: 0;
  padding: 0 2px;
}

.other-meal-table .other-meal-frequency-column {
  width: 52px;
  min-width: 52px;
  padding-left: 1px;
  padding-right: 1px;
}
.other-meal-table .other-meal-frequency-column { display:none!important; }
.other-meal-table:not(.budget-ledger-edit-table) th:nth-child(2),.other-meal-table:not(.budget-ledger-edit-table) td:nth-child(2) { width:120px!important; }
.other-meal-table .other-meal-date-column { width:83px!important; min-width:83px!important; max-width:83px!important; }
.other-meal-table .other-meal-memo-column { width:150px!important; min-width:150px!important; max-width:150px!important; padding:2px 4px!important; text-align:left!important; }
.other-meal-table .other-meal-memo-column input { width:100%; min-width:0; text-align:left; }
.other-meal-table .open-row-memo { position:relative; width:100%; height:30px; padding:0; border:0; background:transparent; color:var(--muted); font-size:10px; cursor:pointer; }
.other-meal-table .open-row-memo.has-memo { color:var(--orange); font-weight:700; }
.other-meal-table .open-row-memo:hover { background:#fff1e9; color:var(--orange); }
.other-meal-table .open-row-memo.has-memo:hover::after { content:attr(data-tooltip); position:absolute; left:50%; bottom:calc(100% + 7px); z-index:60; width:max-content; min-width:150px; max-width:360px; padding:8px 10px; transform:translateX(-50%); border:1px solid var(--navy); background:#fff; color:var(--navy); box-shadow:4px 4px 0 rgba(12,25,48,.16); white-space:pre-wrap; overflow-wrap:anywhere; text-align:left; font-size:11px; font-weight:400; line-height:1.45; pointer-events:none; }
.other-meal-table .open-row-memo.has-memo:hover::before { content:''; position:absolute; left:50%; bottom:calc(100% + 2px); z-index:61; width:8px; height:8px; transform:translateX(-50%) rotate(45deg); border-right:1px solid var(--navy); border-bottom:1px solid var(--navy); background:#fff; pointer-events:none; }
.row-memo-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:12px; }

.other-meal-table .other-meal-date-column {
  width: 112px !important;
  min-width: 112px;
  padding: 0 !important;
}
.other-meal-table .other-meal-dates {
  height: 42px;
  min-height: 42px;
  resize: none;
  overflow: auto;
  border: 0;
  padding: 1px 2px;
  font-size: 10px;
  line-height: 13px;
  text-align: center;
  white-space: pre-wrap;
}
.other-meal-table .other-meal-formula-column {
  width: 105px !important;
  min-width: 105px;
  border-left: 1px solid var(--navy) !important;
  border-right: 1px solid var(--navy) !important;
  text-align: center !important;
}
.other-meal-table .other-meal-currency-column {
  width: 66px !important;
  min-width: 66px;
  padding-left: 2px;
  padding-right: 2px;
}
.other-meal-table .other-meal-local-total-column { width:100px!important; min-width:100px!important; padding:2px 5px!important; text-align:right!important; white-space:nowrap; font-variant-numeric:tabular-nums; }
.other-meal-table .other-meal-local-total-column small { margin-left:2px; color:#5b6470; font-size:9px; }
.other-meal-table .other-meal-payment-column {
  width: 68px !important;
  min-width: 68px !important;
  max-width: 68px !important;
  padding-left: 2px !important;
  padding-right: 2px !important;
}
.other-meal-table .other-meal-payment-column input {
  width: 100%;
  min-width: 0;
  padding-left: 2px;
  padding-right: 2px;
  font-size: 10px;
}
.other-meal-table .inline-formula {
  display:block;
  text-align:center;
}
.other-meal-table .inline-formula > :not([name="unit_price"]) { display:none!important; }
.other-meal-table .formula-currency-suffix { display:none; }
.other-meal-table .selected-participant-names[contenteditable="true"]:focus { outline:1px solid var(--orange); background:#fff; }
.other-meal-table [name="unit_price"] {
  width: 100%;
  min-width: 0;
  justify-self: center;
  padding-left: 2px;
  padding-right: 2px;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.meal-expense-table th:nth-child(5),
.meal-expense-table td:nth-child(5) {
  text-align: center !important;
}
.meal-expense-table .meal-person-column,
.meal-expense-table .meal-names {
  width:auto!important;
  text-align:left!important;
  white-space:normal!important;
  overflow:visible;
}
.meal-expense-table .meal-person-column {
  text-align:center!important;
}
.meal-expense-table .meal-names-empty {
  background:transparent;
}
.meal-expense-table .meal-person-name {
  display:inline-block;
  white-space:nowrap;
}
.meal-expense-table .meal-name-separator {
  white-space:normal;
}
.meal-expense-table .meal-cost-line {
  min-height:18px;
  padding:1px 0;
  white-space:nowrap;
}
.meal-expense-table table { table-layout:fixed!important; }
.meal-expense-table th:nth-child(1) { width:74px!important; }
.meal-expense-table th:nth-child(2) { width:92px!important; }
.meal-expense-table th:nth-child(3),
.meal-expense-table th:nth-child(4),
.meal-expense-table th:nth-child(5),
.meal-expense-table th:nth-child(6) { width:auto!important; }
.meal-expense-table th:nth-child(7),
.meal-expense-table .meal-daily-total {
  width:100px!important;
  text-align:right!important;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.meal-expense-table .meal-detail-cell {
  position:relative;
  height:100%;
  min-height:76px;
  padding:7px 6px 34px!important;
  vertical-align:top!important;
}
.meal-expense-table .meal-name-line {
  display:block;
  min-height:18px;
  white-space:nowrap;
}
.meal-expense-table .meal-cell-costs {
  position:absolute;
  right:6px;
  bottom:6px;
  left:6px;
  padding-top:4px;
  border-top:1px solid rgba(12,25,48,.18);
  color:var(--navy);
  font-size:10px;
  text-align:center;
  white-space:nowrap;
}
.meal-expense-table .meal-cell-costs b {
  padding:0 2px;
  color:var(--muted);
  font-weight:400;
}
.meal-expense-table th,
.meal-expense-table td,
.meal-expense-table .meal-names,
.meal-expense-table .meal-name-line,
.meal-expense-table .meal-cell-costs,
.meal-expense-table .meal-daily-total,
.meal-expense-table tfoot th {
  text-align:center!important;
}
.meal-expense-table .meal-row-travel > td { background:#eaf5fb!important; }
.meal-expense-table .meal-row-rest > td { background:#fbecef!important; }
.meal-expense-table .meal-row-travel:hover > td { background:#dfedf5!important; }
.meal-expense-table .meal-row-rest:hover > td { background:#f5dfe4!important; }

.meal-expense-table thead th:nth-child(9),
.meal-expense-table tbody td.money,
.meal-expense-table tfoot .money {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}
.meal-expense-table thead th:nth-child(7),
.meal-expense-table tbody td:nth-child(7) {
  text-align:center!important;
}

.meal-category-totals {
  display: flex;
  justify-content: flex-end;
  align-items: stretch;
  gap: 6px;
  margin-left: auto;
}
.meal-category-totals > span {
  display: grid;
  grid-template-columns: 1fr;
  align-items: center;
  gap: 2px;
  min-width: 158px;
  padding: 4px 8px;
  background: #f3f4f5;
  border-left: 3px solid var(--orange);
  white-space: nowrap;
}
.meal-category-totals small { color: var(--navy); font-size:11px; font-weight:800; }
.meal-category-totals strong { text-align: right; font-variant-numeric: tabular-nums; }
.meal-category-values { display:grid; grid-template-columns:1fr; gap:1px; min-width:0; padding-top:2px; border-top:1px solid #cbd1d8; text-align:right; }
.meal-category-values em { color:#303740; font-size:11px; font-style:normal; font-variant-numeric:tabular-nums; }
.meal-category-values strong { font-size:11px; }
.meal-expense-table tfoot .meal-table-count-total { text-align:center!important; white-space:nowrap; }
.confirm-meal-defaults { margin-bottom: 8px; }
.meal-page .confirm-meals {
  background: var(--gray);
  border-color: var(--navy);
  color: var(--navy);
}
.meal-page .confirm-meals:hover {
  background: #c9c9c9;
}

.meal-person-form .meal-sheet tbody td,
.meal-day-form .meal-sheet tbody td {
  height: 26px;
  padding: 1px 4px !important;
  line-height: 1.1;
}
.meal-person-table-name {
  padding: 7px 10px;
  border: 1px solid var(--navy);
  border-bottom: 0;
  background: #fff;
  color: var(--navy);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  text-align: left;
}
.meal-person-form .meal-sheet tbody select,
.meal-person-form .meal-sheet tbody input,
.meal-day-form .meal-sheet tbody select,
.meal-day-form .meal-sheet tbody input,
.meal-day-form .meal-sheet tbody button {
  height: 24px !important;
  min-height: 24px;
  padding-top: 1px !important;
  padding-bottom: 1px !important;
  line-height: 1;
}
.meal-person-form .meal-sheet tfoot th,
.meal-day-form .meal-sheet tfoot th {
  padding: 9px 6px;
  background: var(--navy);
  color: #fff;
  text-align: center !important;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.meal-person-form .meal-sheet tfoot .total-meals,
.meal-day-form .meal-sheet tfoot .total-meals {
  color: #ffb18d;
}
.meal-day-form .meal-apply-below-head,
.meal-day-form .meal-apply-below-cell {
  width: 105px;
  min-width: 105px;
  padding: 0 !important;
  text-align: center !important;
}
.meal-day-form .meal-apply-below {
  width: 100%;
  height: 24px;
  padding: 0 3px !important;
  border: 0;
  background: transparent;
  font-size: 11px;
  white-space: nowrap;
}

.facility-laundry-tabs { display:flex; gap:0; margin-bottom:14px; border-bottom:3px solid var(--navy); }
.facility-laundry-tabs button { min-width:150px; padding:12px 20px; border:1px solid var(--line); border-bottom:0; background:#fff; color:var(--muted); cursor:pointer; font-weight:700; }
.facility-laundry-tabs button.active { background:var(--navy); color:#fff; border-color:var(--navy); }
.facility-page,.laundry-page { background:#fff; border:1px solid var(--line); padding:20px; }
.facility-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:16px; }
.facility-toolbar h2 { margin:4px 0 0; font-family:Eagles; font-weight:400; font-size:30px; }
.facility-matrix-wrap { width:100%; overflow:auto; }
.facility-matrix { width:max-content; min-width:100%; table-layout:fixed; border-collapse:collapse; }
.facility-matrix th,.facility-matrix td { min-width:158px; height:53px; padding:0!important; border:1px solid var(--navy); text-align:center!important; vertical-align:middle!important; }
.facility-matrix th:first-child,.facility-matrix td:first-child { min-width:82px; width:82px; max-width:82px; position:sticky; left:0; z-index:3; background:#fff; white-space:nowrap; }
.facility-matrix th:nth-child(2),.facility-matrix td:nth-child(2) { min-width:92px; width:92px; max-width:92px; position:sticky; left:82px; z-index:3; background:#fff; border-right:4px double var(--navy); }
.facility-matrix thead th { background:var(--navy); color:#fff; }
.facility-matrix thead th:first-child,.facility-matrix thead th:nth-child(2) { background:var(--navy); }
.facility-column-name { height:51px; border:0; background:transparent; color:#fff; text-align:center; font-weight:700; }
.facility-column-name::placeholder { color:rgba(255,255,255,.65); }
.facility-cost-cell { cursor:pointer; background:#fff; }
.facility-cost-cell:hover { background:#fff1e9; }
.facility-cost-cell span { color:var(--orange); font-size:20px; }
.facility-cost-cell strong,.facility-cost-cell small { display:block; text-align:center!important; }
.facility-cost-cell small { margin-top:3px; color:var(--muted); font-size:10px; }
.facility-matrix tbody tr:has(.badge.rest) td { background:#fff0f4; }
.facility-matrix tbody tr:has(.badge.departure) td,
.facility-matrix tbody tr:has(.badge.return) td { background:#edf6ff; }
.facility-matrix tbody tr:has(.badge.rest) .facility-cost-cell:hover,
.facility-matrix tbody tr:has(.badge.departure) .facility-cost-cell:hover,
.facility-matrix tbody tr:has(.badge.return) .facility-cost-cell:hover { background:#fff1e9; }
.facility-cell-actions { display:flex; justify-content:space-between; gap:8px; }
.facility-matrix tfoot th { height:36px; padding:4px!important; border:1px solid var(--navy); background:#f3f4f5; color:var(--navy); text-align:center!important; font-variant-numeric:tabular-nums; }
.facility-matrix tfoot td.facility-lump-cell { height:53px; padding:4px 5px!important; border:1px solid var(--navy); background:#fff; color:var(--navy); text-align:center!important; vertical-align:middle; }
.facility-matrix tfoot td.facility-lump-cell small { white-space:nowrap; }
.facility-matrix tfoot tr:last-child th { background:var(--navy); color:#fff; }
.laundry-rate-settings { display:grid; grid-template-columns:1.1fr 1fr .7fr 1.2fr auto; gap:10px; align-items:end; padding:14px; background:#f3f4f5; }
.laundry-rate-settings button { height:42px; white-space:nowrap; }
.laundry-holiday-setting { display:flex; align-items:center; gap:18px; padding:11px 14px; border:1px solid var(--line); border-top:0; background:#fff; }
.laundry-holiday-setting label { display:flex; grid-template-columns:none; flex-direction:row; align-items:center; gap:6px; cursor:pointer; }
.laundry-holiday-setting input { width:15px; height:15px; margin:0; }
.laundry-holiday-setting small { margin-left:auto; color:var(--muted); }
.laundry-defaults { margin:18px 0; }
.laundry-default-head { display:flex; justify-content:space-between; align-items:center; padding:10px 0; }
.laundry-defaults table { width:100%; border-collapse:collapse; table-layout:fixed; }
.laundry-defaults th,.laundry-defaults td { height:46px; padding:0; border:1px solid var(--navy); text-align:center; }
.laundry-defaults th { width:145px; background:#f3f4f5; }
.laundry-group-toggle { width:100%; height:100%; border:0; background:transparent; color:var(--navy); font-weight:700; cursor:pointer; }
.laundry-person { display:grid; grid-template-columns:18px 1fr; grid-template-rows:auto auto; align-items:center; gap:0 5px; height:100%; padding:4px 8px; text-align:left; cursor:pointer; }
.laundry-person input { grid-row:1/3; width:14px; }
.laundry-person small { color:var(--muted); font-size:10px; }
.laundry-person:has(input:checked) { background:#fff1e9; }
.laundry-current-total { padding:10px 14px; background:var(--navy); color:#fff; font-variant-numeric:tabular-nums; }
.open-laundry-daily { margin-top:8px; background:var(--gray); color:var(--navy); border-color:var(--navy); }
.laundry-daily-page { background:#fff; border:1px solid var(--line); padding:20px; }
.laundry-matrix-wrap { width:max-content; min-width:100%; overflow:visible; }
.laundry-matrix { width:max-content; min-width:100%; table-layout:fixed; border-collapse:separate; border-spacing:0; border-top:1px solid var(--navy); border-left:1px solid var(--navy); }
.laundry-matrix th,.laundry-matrix td { width:145px; min-width:145px; height:53px; padding:0!important; border:0; border-right:1px solid var(--navy); border-bottom:1px solid var(--navy); text-align:center!important; vertical-align:middle!important; }
.laundry-matrix th:first-child,.laundry-matrix td:first-child { width:92px; min-width:92px; position:sticky; left:0; z-index:3; background:#fff; }
.laundry-matrix th:nth-child(2),.laundry-matrix td:nth-child(2) { width:105px; min-width:105px; position:sticky; left:92px; z-index:3; background:#fff; border-right:1px solid var(--navy); }
.laundry-matrix thead th { background:var(--navy); color:#fff; }
.laundry-matrix thead th:first-child,.laundry-matrix thead th:nth-child(2) { background:var(--navy); }
.laundry-matrix thead small { display:block; margin-top:3px; opacity:.7; }
.laundry-day-cell { cursor:cell; user-select:none; }
.laundry-day-cell strong,.laundry-day-cell span { display:block; text-align:center!important; }
.laundry-day-cell strong { font-size:16px; }
.laundry-day-cell span { margin-top:3px; font-size:11px; font-variant-numeric:tabular-nums; }
.laundry-day-cell.custom-price { background:#fff8cf!important; }
.laundry-day-cell.multi-selected { outline:3px solid var(--orange); outline-offset:-3px; background:#fff1e6!important; }
.laundry-matrix tbody tr:has(.badge.rest) td:not(.custom-price) { background:#fff0f4; }
.laundry-matrix tbody tr:has(.badge.departure) td:not(.custom-price),.laundry-matrix tbody tr:has(.badge.return) td:not(.custom-price) { background:#edf6ff; }
.laundry-day-settings [disabled] { background:#eceff1; color:#9aa0a6; cursor:not-allowed; }
.lodging-matrix .matrix-day-total-head,
.lodging-matrix .matrix-day-total,
.laundry-matrix .matrix-day-total-head,
.laundry-matrix .matrix-day-total {
  position: sticky;
  right: 0;
  z-index: 4;
  width: 150px;
  min-width: 150px;
  border-left: 4px double var(--navy);
  text-align: center !important;
}
.lodging-matrix .matrix-day-total-head,
.laundry-matrix .matrix-day-total-head { z-index:8; background:var(--navy); color:#fff; }
.lodging-matrix .matrix-day-total,
.laundry-matrix .matrix-day-total { background:#f3f4f5; }
.matrix-day-total strong,.matrix-day-total span,
.matrix-person-total strong,.matrix-person-total span,
.matrix-grand-total strong,.matrix-grand-total span,
.lodging-matrix tfoot th:first-child strong,.lodging-matrix tfoot th:first-child span,
.laundry-matrix tfoot th:first-child strong,.laundry-matrix tfoot th:first-child span { display:block; text-align:center!important; }
.matrix-day-total span,.matrix-person-total span,.matrix-grand-total span { margin-top:4px; font-size:10px; line-height:1.25; white-space:normal; font-variant-numeric:tabular-nums; }
.lodging-matrix tfoot th,.laundry-matrix tfoot th { height:58px; padding:5px!important; background:var(--navy); color:#fff; border:1px solid var(--navy); text-align:center!important; vertical-align:middle; }
.lodging-matrix tfoot .matrix-grand-total,.laundry-matrix tfoot .matrix-grand-total { position:sticky; right:0; z-index:7; min-width:150px; border-left:4px double #fff; color:#ffb18d; }
.workspace.laundry-full-page-mode { display:block; }
.workspace.laundry-full-page-mode > .steps { display:none; }
.workspace.laundry-full-page-mode > .workarea { width:100vw; max-width:none; padding-left:28px; padding-right:28px; overflow:visible; }
.workspace.laundry-full-page-mode .step-footer { left:0; }
.workspace.laundry-full-page-mode,.workspace.laundry-full-page-mode > .workarea,.workspace.laundry-full-page-mode #stepContent,.laundry-daily-page { overflow:visible; }
@media(max-width:1100px){.laundry-rate-settings{grid-template-columns:1fr 1fr}.laundry-rate-settings button{grid-column:1/-1}.laundry-holiday-setting{flex-wrap:wrap}.laundry-holiday-setting small{width:100%;margin-left:0}}

/* 대형 일자표는 상단 헤더만 고정하고 나머지 열은 가로 스크롤을 따른다. */
.lodging-matrix tbody td:first-child,
.lodging-matrix tbody td:nth-child(2),
.laundry-matrix tbody td:first-child,
.laundry-matrix tbody td:nth-child(2),
.lodging-matrix .matrix-day-total,
.laundry-matrix .matrix-day-total,
.lodging-matrix tfoot th,
.laundry-matrix tfoot th,
.lodging-matrix tfoot .matrix-grand-total,
.laundry-matrix tfoot .matrix-grand-total {
  position: static !important;
  left: auto !important;
  right: auto !important;
}
.lodging-matrix thead th,
.laundry-matrix thead th {
  position: sticky !important;
  top: 64px;
  left: auto !important;
  right: auto !important;
  z-index: 7;
}
.laundry-matrix thead { position:relative; z-index:7; }
.laundry-matrix thead th { box-shadow:0 1px 0 var(--navy),1px 0 0 var(--navy); }
.lodging-matrix .matrix-day-total-head,
.laundry-matrix .matrix-day-total-head {
  position: sticky !important;
  right: auto !important;
}
.workspace.lodging-full-page-mode .workhead,
.workspace.laundry-full-page-mode .workhead { padding-bottom:10px; margin-bottom:10px; }
.workspace.lodging-full-page-mode .workhead > div > p:last-child,
.workspace.laundry-full-page-mode .workhead > div > p:last-child,
.laundry-daily-page > .form-help { display:none; }
.workspace.lodging-full-page-mode .workhead h1,
.workspace.laundry-full-page-mode .workhead h1 { margin:3px 0; font-size:34px; }
.laundry-daily-page,.facility-page,.laundry-page { padding:12px; }
.laundry-daily-page .facility-toolbar { margin-bottom:8px; }

/* 공통 표 밀도를 높여 화면 안에서 더 많은 정보를 확인한다. */
.data-table { font-size:12px; }
.data-table th { padding:5px 5px; }
.data-table td { padding:5px 4px; }
.data-table input,.data-table select,.data-table textarea { padding:4px 5px; }
.panel-head { padding:10px 12px; }
.panel-body { padding:10px 12px; }
.detail-page-head { padding-top:10px!important; padding-bottom:10px!important; }
.detail-page-head h2 { margin-top:3px; margin-bottom:3px; }
.lodging-matrix tfoot th:first-child,.laundry-matrix tfoot th:first-child { width:92px!important; min-width:92px!important; max-width:92px!important; }
.lodging-matrix tfoot .matrix-total-second-label,.laundry-matrix tfoot .matrix-total-second-label { width:105px!important; min-width:105px!important; max-width:105px!important; }
.lodging-matrix thead th,.laundry-matrix thead th { height:53px; padding:3px!important; vertical-align:middle!important; }

/* 전체화면 데이터 표의 공통 레이아웃 */
.workspace.unified-table-mode { display:block; }
.unified-table-active .topbar { display:none; }
.workspace.unified-table-mode > .steps { display:none; }
.workspace.unified-table-mode > .workarea { width:100vw; max-width:none; padding:0 20px 64px; overflow:visible; }
.workspace.unified-table-mode .workhead { display:none; }
.workspace.unified-table-mode .step-footer { left:0; min-height:0; padding:16px 48px; gap:10px; align-items:center; justify-content:flex-start; z-index:30; background:rgba(245,245,242,.97); }
.workspace.unified-table-mode .step-footer > button { min-height:0; padding:11px 18px; }
.workspace.unified-table-mode .step-footer .head-totals { display:flex; gap:6px; margin-right:auto; order:initial; }
.workspace.unified-table-mode .step-footer #nextStep { margin-left:0; }
.workspace.unified-table-mode .step-footer .unified-hidden-prev { display:none; }
.workspace.unified-table-mode .step-footer .summary-chip { min-width:155px; padding:6px 10px; box-shadow:none; }
.workspace.unified-table-mode .step-footer .summary-chip span { font-size:9px; }
.workspace.unified-table-mode .step-footer .summary-chip strong { margin-top:1px; font-size:15px; }
.workspace.unified-table-mode .laundry-daily-page > .facility-toolbar,
.workspace.unified-table-mode .detail-page-head { display:none; }
.workspace.unified-table-mode .facility-page > .facility-toolbar { min-height:34px; margin:0; justify-content:flex-end; }
.workspace.unified-table-mode .facility-page > .facility-toolbar > div { display:none; }
.workspace.unified-table-mode .facility-page > .facility-toolbar .add-facility-column { min-height:30px; padding:4px 9px; }
.workspace.unified-table-mode .lodging-matrix-page,
.workspace.unified-table-mode .laundry-daily-page,
.workspace.unified-table-mode .facility-page { padding:0; border:0; }
.workspace.unified-table-mode .lodging-matrix th:not(:first-child):not(:nth-child(2)),
.workspace.unified-table-mode .lodging-matrix-cell,
.workspace.unified-table-mode .laundry-matrix th:not(:first-child):not(:nth-child(2)),
.workspace.unified-table-mode .laundry-day-cell { width:152px; min-width:152px; }
.workspace.unified-table-mode .lodging-matrix th:not(:first-child):not(:nth-child(2)),
.workspace.unified-table-mode .lodging-matrix-cell { width:106px; min-width:106px; }
.workspace.unified-table-mode .lodging-matrix td,
.workspace.unified-table-mode .laundry-matrix td { height:53px; font-size:12px; padding:4px 5px!important; }
.workspace.unified-table-mode .lodging-matrix thead th,
.workspace.unified-table-mode .laundry-matrix thead th { height:53px; font-size:12px; padding:4px 5px!important; }
.workspace.unified-table-mode .lodging-matrix small,
.workspace.unified-table-mode .laundry-matrix small { font-size:10px; }
.workspace.laundry-full-page-mode.unified-table-mode > .workarea { padding-bottom:58px; }
.workspace.laundry-full-page-mode.unified-table-mode .step-footer { min-height:58px; height:58px; padding:6px 48px; }
.workspace.laundry-full-page-mode.unified-table-mode .step-footer > button { padding-top:8px; padding-bottom:8px; }
.workspace.laundry-full-page-mode .laundry-matrix tfoot th { border:0!important; border-right:1px solid var(--navy)!important; border-bottom:1px solid var(--navy)!important; }
.workspace.laundry-full-page-mode .laundry-matrix .matrix-day-total-head,
.workspace.laundry-full-page-mode .laundry-matrix .matrix-day-total,
.workspace.laundry-full-page-mode .laundry-matrix .matrix-grand-total { border-left:0!important; }
.unified-table-active .lodging-matrix thead th,
.unified-table-active .laundry-matrix thead th { top:0; }

.schedule-date-field { display:grid; grid-template-columns:minmax(0,1fr) 34px; align-items:center; }
.schedule-date-storage { display:none!important; }
.schedule-frequency-inline { display:grid; grid-template-columns:minmax(0,1fr) 16px; align-items:center; height:34px; gap:0; border-right:1px solid var(--line); }
.schedule-frequency-inline input { height:32px!important; padding:3px 2px!important; border:0!important; background:transparent!important; text-align:right!important; font-size:12px; }
.schedule-frequency-inline span { font-size:10px; font-weight:700; }
.schedule-date-field .schedule-date-button { height:42px; border:0; border-left:1px solid var(--line); background:#fff; color:var(--navy); cursor:pointer; }
.schedule-date-field .schedule-date-button:hover { background:#fff1e9; color:var(--orange); }
.schedule-calendar-picker { display:grid; grid-template-columns:repeat(2,minmax(330px,1fr)); gap:20px; }
.schedule-calendar-month h3 { margin:0 0 10px; text-align:center; font-family:Eagles; font-weight:400; }
.schedule-calendar-week,.schedule-calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); }
.schedule-calendar-week span { padding:6px; text-align:center; color:var(--muted); font-size:11px; }
.schedule-calendar-day,.calendar-blank { min-height:66px; border:1px solid var(--line); margin:-1px 0 0 -1px; }
.schedule-calendar-day { background:#fff; color:var(--navy); padding:6px; text-align:left; cursor:pointer; }
.schedule-calendar-day b,.schedule-calendar-day small { display:block; }
.schedule-calendar-day small { margin-top:5px; font-size:9px; line-height:1.25; }
.schedule-calendar-day:hover { outline:2px solid var(--orange); position:relative; z-index:2; }
.schedule-calendar-day.departure,.schedule-calendar-day.return { background:#d8eef7; }
.schedule-calendar-day.training { background:#f2f3f5; }
.schedule-calendar-day.home { background:#fff0e8; color:var(--orange); }
.schedule-calendar-day.away { background:#dfe5ee; }
.schedule-calendar-day.rest { background:#f9e2e2; color:#a22; }
.schedule-calendar-day.multi-date-selected {
  outline: none;
  box-shadow: none;
  position: relative;
  z-index: 2;
}
.schedule-calendar-day.multi-date-selected::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(225deg, var(--navy) 0 50%, transparent 51%) top right / 13px 13px no-repeat,
    repeating-linear-gradient(135deg, transparent 0 5px, rgba(12, 25, 48, .42) 5px 6px);
  pointer-events: none;
}
.schedule-calendar-day.multi-date-selected:hover { outline:none; }
.schedule-multi-actions { position:sticky; bottom:0; display:flex; justify-content:flex-end; align-items:center; gap:8px; padding:14px 0 0; background:#fff; border-top:2px solid var(--navy); }
.schedule-frequency-editor { display:grid; grid-template-columns:auto 70px auto; align-items:center; gap:6px; margin-left:auto; font-size:11px; }
.schedule-frequency-editor input { height:34px; padding:5px 7px; text-align:right; }
.schedule-selected-count { margin-right:auto; font-weight:700; color:var(--orange); }
.custom-participant-row th,.custom-participant-row td { height:46px!important; }
.custom-participant-row td label { display:flex; align-items:center; justify-content:center; gap:8px; }
.custom-participant-count { width:110px!important; height:34px; padding:5px 8px; text-align:right; appearance:auto!important; -moz-appearance:auto!important; }
.custom-participant-count::-webkit-inner-spin-button,.custom-participant-count::-webkit-outer-spin-button { appearance:auto!important; -webkit-appearance:auto!important; opacity:1!important; }
.custom-count-control { display:grid; grid-template-columns:34px 110px 34px; align-items:center; }
.custom-count-control button { height:34px; padding:0; border:1px solid var(--navy); background:#fff; color:var(--navy); font-size:18px; cursor:pointer; }
.custom-count-control input { border-left:0; border-right:0; }
.custom-quantity-box { display:grid; grid-template-columns:minmax(0,1fr) auto 72px; gap:12px; align-items:center; padding:12px 14px; border:1px solid var(--navy); border-top:0; background:#f5f5f2; }
.custom-quantity-box strong,.custom-quantity-box small { display:block; }
.custom-quantity-box small { margin-top:3px; color:var(--muted); font-size:10px; }
.custom-quantity-box > span { font-size:12px; font-weight:700; }
.custom-quantity-unit { width:72px!important; height:34px; padding:5px 7px; text-align:center; }
.transport-visit-reference { display:grid; grid-template-columns:110px minmax(0,1fr); gap:16px; align-items:center; width:100%; margin:0; padding:14px; border-left:4px solid var(--navy); background:#edf0f3; }
.transport-visit-title { padding-top:6px; }
.transport-visit-reference > div { display:flex; flex-wrap:wrap; gap:7px; min-width:0; margin:0; padding:0; }
.transport-visit-reference article { display:flex; gap:8px; align-items:center; padding:6px 9px; border:1px solid var(--line); background:#fff; font-size:11px; }
.transport-visit-reference article strong { color:var(--orange); white-space:nowrap; }
.transport-visit-reference article span { white-space:nowrap; }
.transport-visit-reference small { padding:6px 0; color:var(--muted); }
.travel-change-dialog p { margin:0; font-weight:800; color:var(--navy); }
.travel-change-dialog small { display:block; margin-top:8px; color:var(--muted); }
.travel-change-dialog > div { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:18px; }
.travel-change-dialog button { height:44px; border:1px solid var(--navy); font-size:18px; font-weight:900; cursor:pointer; }
.travel-change-no { background:#f3d9dc; color:#9f2130; }
.travel-change-yes { background:#dcebdd; color:#17662d; }
.travel-default-row { background:#fff4df; }

/* 모든 단계의 제목과 예산 하단바를 같은 높이와 순서로 유지한다. */
#workspaceView .workhead { display:block; padding:8px 0 10px; margin:0 0 14px; border-bottom:2px solid var(--navy); }
#workspaceView .workhead > div { display:flex; align-items:baseline; gap:12px; min-width:0; }
#workspaceView .workhead .eyebrow { flex:0 0 auto; font-size:10px; letter-spacing:1.5px; }
#workspaceView .workhead h1 { flex:0 0 auto; margin:0; font-family:Hanwha,Arial,sans-serif; font-size:22px; line-height:1.2; font-weight:800; }
#workspaceView .workhead #stepHelp { min-width:0; margin:0; color:var(--muted); font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#workspaceView .step-footer { min-height:58px; padding:6px 48px; align-items:center; justify-content:flex-start; gap:8px; }
#workspaceView .step-footer .head-totals { display:flex; gap:6px; margin-right:auto; }
#workspaceView .step-footer .summary-chip { min-width:155px; margin:0; padding:5px 10px; box-shadow:none; }
#workspaceView .step-footer .summary-chip span { font-size:9px; }
#workspaceView .step-footer .summary-chip strong { display:block; margin-top:1px; font-size:15px; }
#workspaceView .step-footer .meal-footer-total { min-width:128px; border-color:#b8c2cf; background:#f8fafb; color:#202124; padding:2px 8px; }
#workspaceView .step-footer .meal-footer-total span { color:#202124; font-size:11px; font-weight:800; opacity:1; }
#workspaceView .step-footer .meal-footer-total strong { color:#202124; text-align:right; font-variant-numeric:tabular-nums; }
#workspaceView .step-footer .meal-footer-values { display:grid; grid-template-columns:1fr; gap:0; margin-top:1px; padding-top:1px; border-top:1px solid #aeb6c1; text-align:right; white-space:nowrap; line-height:1.05; }
#workspaceView .step-footer .meal-footer-values small { color:#303740; font-size:11px; font-weight:600; font-variant-numeric:tabular-nums; }
#workspaceView .step-footer .meal-footer-values strong { display:block; margin:0; font-size:11px; }
#workspaceView:has(.meal-page, .meal-detail-page) .step-footer > button { padding-top:0; padding-bottom:0; }
#workspaceView .step-footer > button { min-height:38px; padding:8px 16px; }
.workspace.unified-table-mode > .workarea { padding-top:0; }
.workspace.unified-table-mode .workhead { display:block; }
.workspace.unified-table-mode .step-footer { min-height:58px; height:58px; padding:6px 48px; }
.budget-entry-tabs { align-items:center; margin-bottom:8px; border-bottom:2px solid var(--navy); gap:0; }
.budget-entry-tabs button { min-width:105px; padding:8px 13px; border-bottom:0; }
.budget-entry-tabs .add-budget-tab { margin-left:8px; min-width:auto; border:1px dashed var(--orange); color:var(--orange); font-weight:800; }
.other-meal-table th,.other-meal-table td { height:32px; padding:2px 4px!important; line-height:1.15; }
.other-meal-table td input,.other-meal-table td select { height:28px; padding:2px 4px; }
.other-meal-table textarea.other-meal-dates { min-height:28px; height:28px; padding:1px 3px; line-height:12px; }
.other-meal-table .participant-field,.other-meal-table .inline-formula,.other-meal-table .schedule-date-field { min-height:28px; height:28px; }
.other-meal-table .selected-participant-names { padding:3px 4px; }
.other-meal-table .other-meal-actions button,.other-meal-table .other-meal-delete button { height:28px; }
.other-meal-table .open-row-memo { height:28px; }
.airline-reference { display:grid; gap:8px; }
.airline-reference .other-meal-description,.airline-reference .transport-visit-reference { margin:0; }
.other-meal-table .participant-summary-button { position:relative; display:grid; place-items:center; width:100%; height:28px; padding:0 3px; border:0; background:transparent; color:var(--navy); font-size:10px; font-weight:800; cursor:default; overflow:visible; }
.other-meal-table .participant-summary-button:hover { background:#fff1e9; color:var(--orange); }
.other-meal-table .participant-summary-button:hover::after,.other-meal-table .other-meal-date-summary-column:hover::after { content:attr(data-tooltip); position:absolute; left:50%; bottom:calc(100% + 6px); z-index:80; width:max-content; min-width:130px; max-width:420px; padding:7px 9px; transform:translateX(-50%); border:1px solid var(--navy); background:#fff; color:var(--navy); box-shadow:4px 4px 0 rgba(12,25,48,.16); white-space:normal; overflow-wrap:anywhere; text-align:left; font-size:10px; font-weight:400; line-height:1.4; pointer-events:none; }
.other-meal-table .other-meal-date-summary-column { position:relative; width:108px; min-width:108px; max-width:108px; overflow:hidden; text-overflow:ellipsis; text-align:left; font-size:10px; cursor:default; }
.other-meal-table .other-meal-date-summary-column.has-dates { color:var(--navy); font-weight:700; }
.other-meal-table th.other-meal-date-summary-column { text-align:center!important; }
.other-meal-table td.other-meal-date-summary-column { text-align:center!important; }
.other-meal-table th,.other-meal-table td { vertical-align:middle!important; }
.other-meal-table td input,.other-meal-table td select,.other-meal-table td textarea { margin:0; vertical-align:middle; }
.other-meal-table .participant-field,.other-meal-table .inline-formula,.other-meal-table .schedule-date-field { align-items:center; }
.other-meal-table .open-participant-picker,.other-meal-table .add-other-meal-row { flex:0 0 22px; width:22px!important; min-width:22px!important; height:22px!important; min-height:22px; margin:0 2px; padding:0!important; display:grid; place-items:center; border:1px solid var(--navy); line-height:1; font-size:12px; }
.other-meal-table .selected-participant-names,.other-meal-table .inline-krw-preview,.other-meal-table .other-meal-date-summary-column { vertical-align:middle; line-height:1.2; }
.other-meal-table .participant-field { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 24px!important; gap:0; width:100%; height:28px; min-width:0; padding:1px; overflow:visible; border:1px solid var(--line); background:#fff; }
.other-meal-table td:has(.participant-field) { overflow:visible!important; }
.other-meal-table .participant-field:hover { z-index:90; }
.other-meal-table .participant-field .selected-participant-names { width:100%; min-width:0; min-height:24px; height:24px; padding:0 3px; overflow:visible; }
.other-meal-table .participant-field .open-participant-picker { align-self:center; justify-self:center; width:20px!important; min-width:20px!important; height:20px!important; min-height:20px; margin:0; border:0; border-left:1px solid var(--line); background:#fff; }
.other-meal-table .schedule-date-field { display:grid; grid-template-columns:minmax(0,1fr) 24px!important; gap:0; width:100%; height:28px; min-width:0; padding:1px; overflow:hidden; border:1px solid var(--line); background:#fff; }
.other-meal-table .schedule-frequency-inline { width:100%; min-width:0; height:24px; overflow:hidden; border:0; }
.other-meal-table .schedule-frequency-inline input { width:100%; min-width:0; height:24px!important; padding:1px!important; }
.other-meal-table .schedule-date-field .schedule-date-button { align-self:center; justify-self:center; width:20px!important; min-width:20px!important; height:20px!important; min-height:20px; margin:0; padding:0; border:0; border-left:1px solid var(--line); background:#fff; line-height:1; }
.schedule-reference-card.departure,.schedule-reference-card.return { background:#d8eef7; border-color:#9bc5d6; color:var(--navy); }
.schedule-reference-card.rest { background:#f9e2e2; border-color:#e7b9be; color:#9f2130; }
.schedule-reference-card.departure span,.schedule-reference-card.return span { color:#24647e; }
.schedule-reference-card.rest span { color:#b22; }
.transport-visit-reference article.schedule-reference-executive { background:#edf0f3; border-color:var(--navy); color:var(--navy); }
.schedule-picker-wide { width:min(570px,96vw)!important; }
.schedule-picker-wide .modal-body { padding:0!important; }
.schedule-picker-layout { display:grid; grid-template-columns:minmax(0,340px) 190px; column-gap:20px!important; row-gap:0; align-items:stretch; padding:0 10px; }
.schedule-picker-layout .schedule-calendar-picker { grid-template-columns:repeat(auto-fit,minmax(290px,1fr))!important; gap:20px; padding:0!important; margin:0!important; }
.schedule-frequency-panel { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:260px; border:1px solid var(--navy); background:#f5f5f2; }
.schedule-frequency-panel > span { font-size:13px; font-weight:700; }
.schedule-frequency-panel > div { display:grid; grid-template-columns:42px 100px 42px; margin-top:14px; }
.schedule-frequency-panel input { height:62px; padding:4px; border-left:0; border-right:0; text-align:center; font-size:26px; font-weight:700; }
.schedule-frequency-panel button { height:62px; padding:0; border:1px solid var(--navy); background:#fff; color:var(--navy); font-size:24px; cursor:pointer; }
.schedule-frequency-panel small { margin-top:8px; color:var(--muted); }
.schedule-selected-panel { min-height:260px; padding:12px 10px; border:1px solid var(--navy); background:#f5f5f2; }
.schedule-selected-panel > strong { display:block; padding-bottom:8px; border-bottom:1px solid var(--line); font-size:12px; }
.schedule-selected-date-list { display:grid; gap:4px; max-height:560px; margin-top:8px; overflow:auto; }
.schedule-selected-date-list span { display:block; padding:4px 5px; background:#fff; font-size:10px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.schedule-selected-date-list small { color:var(--muted); font-size:10px; }
@media(max-width:900px){.schedule-picker-layout{grid-template-columns:1fr}.schedule-frequency-panel{min-height:130px}.schedule-picker-layout .schedule-calendar-picker{grid-template-columns:1fr}}

.sort-direction {
  color: var(--orange);
  font-size: 10px;
}

/* 입력칸의 브라우저 기본 화살표가 차지하는 공간을 서비스 전체에서 제거한다. */
input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}

input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  appearance: none;
  -webkit-appearance: none;
  margin: 0;
}

select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: none !important;
  padding-right: 7px !important;
}

input[list]::-webkit-calendar-picker-indicator {
  display: none !important;
  opacity: 0;
  width: 0;
  margin: 0;
  padding: 0;
}

table .numeric-price-cell,
table .numeric-price-cell input,
table input.numeric-price-input {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}

.lodging-matrix-cell strong {
  display: block;
  width: 100%;
  text-align: center;
  font-variant-numeric: tabular-nums;
}

.lodging-daily table th,
.lodging-daily table td,
.lodging-daily table .numeric-price-cell,
.lodging-daily table input,
.lodging-daily table select,
.lodging-daily table textarea,
.lodging-daily table button {
  text-align: center !important;
}
.step-footer .delete-checked-items {
  min-height: 38px;
  padding: 8px 16px;
  border: 1px solid #d98b91;
  background: #f9e2e2;
  color: #a51f2d;
  font-weight: 800;
  cursor: pointer;
}

.step-footer .delete-checked-items:hover {
  border-color: #a51f2d;
  background: #f4cfd3;
}

.step-footer #saveCheckedItems {
  border-color: #8fc9a3;
  background: #e3f4e8;
  color: #176b3a;
  font-weight: 800;
}

.step-footer #saveCheckedItems:hover {
  border-color: #176b3a;
  background: #cfead8;
}

.reserve-settings-form {
  display: grid;
  grid-template-columns: auto minmax(220px, 1fr) auto;
  gap: 14px;
  align-items: center;
}

.reserve-settings-form > label {
  display: block;
  font-size: 15px;
  font-weight: 700;
  white-space: nowrap;
}

.reserve-settings-form > input {
  height: 44px;
  padding: 8px 12px;
  font-size: 18px;
  font-weight: 700;
  text-align: right;
}

.reserve-settings-form .apply-reserve {
  min-width: 160px;
  height: 44px;
  padding: 8px 22px;
  font-size: 15px;
}

@media (max-width: 760px) {
  .reserve-settings-form { grid-template-columns: 1fr; }
}

@font-face {
  font-family: ReportBatang;
  src: url('/fonts/Batang.ttf');
}

.report-preview-shell {
  font-family: ReportBatang, Batang, serif;
}

.workspace.report-mode .workarea {
  max-width: none;
}

.report-preview-shell {
  width: 100%;
  background: #fff;
  border: 1px solid var(--navy);
}

.report-preview-heading {
  padding: 18px 20px 14px;
  border-bottom: 2px solid var(--navy);
}

.report-preview-heading #reportTitle {
  height: auto;
  margin: 0;
  padding: 2px 0;
  border: 0;
  background: transparent;
  color: #111;
  text-align: left;
  font-size: 24px;
  font-weight: 700;
}

.report-preview-heading p {
  margin: 7px 0 0;
  color: var(--muted);
  text-align: right;
  font-size: 11px;
}

.report-preview-table-wrap {
  width: 100%;
  overflow-x: auto;
}

.report-preview-table {
  width: 100%;
  min-width: 980px;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 11px;
}

.report-preview-table th,
.report-preview-table td {
  padding: 4px 5px;
  border: 1px solid var(--navy);
  vertical-align: middle;
}

.report-preview-table th {
  background: #f1f2f3;
  color: var(--navy);
  text-align: center;
}

.report-preview-table th:nth-child(1) { width: 100px; }
.report-preview-table th:nth-child(2) { width: auto; }
.report-preview-table th:nth-child(3) { width: 270px; }
.report-preview-table th:nth-child(4) { width: 75px; }
.report-preview-table th:nth-child(5) { width: 125px; }
.report-preview-table th:nth-child(6) { width: 110px; }
.report-preview-table input,
.report-preview-table select {
  height: 28px;
  padding: 2px 4px;
  border-color: transparent;
  background: transparent;
  font-size: 11px;
}

.report-preview-table input:focus,
.report-preview-table select:focus {
  border-color: var(--orange);
  background: #fff;
}

.report-preview-table .report-note-input {
  color: var(--muted);
  font-size: 10px;
}

.report-preview-table textarea.report-note-input {
  display: block;
  height: auto;
  min-height: 1.45em;
  resize: vertical;
  white-space: pre-wrap;
  line-height: 1.45;
}

.report-preview-table .report-line-list span {
  display: block;
  min-height: 1.45em;
  line-height: 1.45;
  white-space: nowrap;
}

.report-preview-table .report-line-list {
  box-sizing: border-box;
  padding: 11px 0;
}

.report-preview-table .report-line-list::before {
  content: "";
  display: block;
  height: 28px;
}

.report-preview-table .report-line-list.numeric {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.report-preview-table .report-component-row td {
  height: 22px;
  padding-top: 1px;
  padding-bottom: 1px;
  background: #fff;
}

.report-preview-table .report-component-note {
  color: var(--navy);
  white-space: normal;
  padding-left: 20px;
}

.report-preview-table .report-component-currency {
  text-align: center;
  font-weight: 700;
}

.report-preview-table .report-formula-text {
  padding: 2px 4px;
  color: #111;
  font-variant-numeric: tabular-nums;
}

.report-preview-table .report-formula-currency {
  font-size: .8em;
}

.report-preview-table .report-group-heading td {
  height: 24px;
  padding-top: 7px;
  padding-bottom: 1px;
  background: #f5f6f7;
  border-bottom-color: #aeb5bd;
}

.report-preview-table .report-component-last td {
  padding-bottom: 7px;
}

.report-preview-table .report-category-cell {
  text-align: center;
  vertical-align: middle;
  background: #f1f2f3;
}

.report-preview-table .report-category-cell strong,
.report-preview-table .report-category-cell span {
  display: block;
}

/* 메인 화면: 캠프별 예산 편성/집행 진입 */
#homeView.home {
  display:block;
  max-width:1220px;
  padding-top:34px;
}
#homeView .hero {
  margin-bottom:28px;
}
#homeView .hero h1 {
  margin:8px 0 0;
  font-size:54px;
  line-height:1;
  white-space:nowrap;
}
#homeView .home-panel {
  width:100%;
  margin-bottom:22px;
}
.budget-comparison-placeholder { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,1.5fr) 120px; align-items:center; gap:16px; padding:18px 8px 4px; }
.budget-comparison-placeholder strong { font-size:15px; }
.budget-comparison-placeholder span { color:var(--muted); font-size:12px; }
.budget-comparison-placeholder button { padding:8px 10px; opacity:.6; cursor:default; }
.budget-comparison-placeholder button:not(:disabled) { opacity:1; cursor:pointer; }

.comparison-page { min-height:calc(100vh - 64px); padding:28px 36px 48px; background:#f3f4f2; }
.comparison-shell { width:100%; max-width:1540px; margin:0 auto; }
.comparison-header { display:flex; align-items:flex-end; justify-content:space-between; padding:0 0 18px; border-bottom:3px solid var(--navy); }
.comparison-header h1 { margin:2px 0 0; font-size:34px; line-height:1; color:var(--navy); }
.comparison-header .eyebrow { margin:0; }
.comparison-selector { margin-top:22px; }
.comparison-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-bottom:18px; }
.comparison-intro>div,.comparison-section-title { display:flex; align-items:center; gap:12px; }
.comparison-intro span,.comparison-section-title span { color:var(--orange); font-weight:900; }
.comparison-intro h2,.comparison-section-title h2 { margin:0; color:var(--navy); }
.comparison-intro p { margin:0; color:var(--muted); font-size:13px; }
.comparison-selection-tray { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin-bottom:20px; }
.comparison-slot { position:relative; min-height:92px; display:flex; flex-direction:column; justify-content:center; padding:16px 48px 16px 54px; border:1px dashed #aab1ba; background:#fff; color:#8a9099; }
.comparison-slot small { position:absolute; left:17px; top:16px; color:#aab1ba; font-weight:800; }
.comparison-slot em { font-style:normal; font-size:13px; }
.comparison-slot.filled { border:2px solid var(--navy); background:#fffdf5; color:var(--navy); }
.comparison-slot.filled small { color:var(--orange); }
.comparison-slot strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:16px; }
.comparison-slot span { margin-top:5px; font-size:12px; font-weight:800; color:var(--orange); }
.comparison-slot button { position:absolute; right:12px; top:10px; border:0; background:none; color:var(--navy); font-size:22px; cursor:pointer; }
.comparison-camp-list { border-top:1px solid #c8cdd3; }
.comparison-camp-card { display:grid; grid-template-columns:minmax(0,1fr) 260px; align-items:center; min-height:74px; padding:11px 14px; border-bottom:1px solid #c8cdd3; background:#fff; }
.comparison-camp-card>div:first-child { min-width:0; display:flex; flex-direction:column; gap:4px; }
.comparison-camp-card strong { color:var(--navy); font-size:15px; }
.comparison-camp-card span { color:#69717d; font-size:12px; }
.comparison-source-buttons { display:grid; grid-template-columns:1fr 1fr; gap:7px; }
.comparison-source-buttons button { position:relative; min-height:38px; border:1px solid var(--navy); background:#fff; color:var(--navy); font-weight:800; cursor:pointer; }
.comparison-source-buttons button.selected { background:var(--navy); color:#fff; }
.comparison-source-buttons button b { position:absolute; right:7px; top:6px; display:grid; place-items:center; width:18px; height:18px; border-radius:50%; background:var(--orange); color:#fff; font-size:10px; }
.comparison-selector-footer { position:sticky; bottom:0; display:flex; justify-content:flex-end; align-items:center; gap:18px; margin-top:18px; padding:12px 0; background:#f3f4f2; }
.comparison-selector-footer>span { color:var(--navy); font-size:13px; }.comparison-selector-footer>span b { font-size:20px; }
.comparison-selector-footer button { min-width:150px; }
.comparison-loading { padding:80px; text-align:center; color:var(--muted); }
.comparison-report { margin-top:18px; }
.comparison-report-actions { display:flex; justify-content:flex-end; gap:8px; margin-bottom:12px; }
.comparison-report-title { display:grid; grid-template-columns:auto 1fr auto; align-items:end; gap:18px; padding:28px 30px; background:var(--navy); color:#fff; }
.comparison-report-title p,.comparison-report-title h1 { margin:0; }.comparison-report-title p { color:var(--orange); font-size:12px; font-weight:900; letter-spacing:.12em; }.comparison-report-title h1 { font-size:38px; }.comparison-report-title span { font-size:13px; }
.comparison-overview-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin-top:1px; background:#cbd0d6; }
.comparison-overview-grid article { min-width:0; padding:24px; background:#fff; }
.comparison-overview-grid article>small { color:var(--orange); font-weight:900; }.comparison-overview-grid h2 { min-height:52px; margin:8px 0 18px; color:var(--navy); font-size:20px; }
.comparison-overview-grid dl { margin:0; }.comparison-overview-grid dl div { display:flex; justify-content:space-between; gap:15px; padding:8px 0; border-top:1px solid #e0e3e6; }.comparison-overview-grid dt { color:#727984; font-size:12px; }.comparison-overview-grid dd { margin:0; text-align:right; color:var(--navy); font-size:13px; }
.comparison-people { display:grid; grid-template-columns:repeat(3,1fr); gap:5px; margin-top:13px; }.comparison-people span { padding:8px 5px; background:#f1f3f5; text-align:center; color:#616a75; font-size:11px; }.comparison-people b { display:block; margin-top:4px; color:var(--navy); font-size:17px; }
.comparison-amounts { margin-top:30px; }.comparison-section-title { margin-bottom:12px; }
.comparison-table-wrap { overflow:auto; }.comparison-table-wrap table { width:100%; border-collapse:collapse; table-layout:fixed; background:#fff; }.comparison-table-wrap th,.comparison-table-wrap td { padding:10px 14px; border:1px solid #cdd2d7; }.comparison-table-wrap thead th { background:var(--navy); color:#fff; text-align:center; }.comparison-table-wrap thead th:first-child { width:170px; }.comparison-table-wrap thead small { display:block; margin-top:3px; color:#ffb19a; }.comparison-table-wrap tbody th { text-align:left; color:var(--navy); }.comparison-table-wrap td { text-align:right; font-variant-numeric:tabular-nums; }.comparison-table-wrap tfoot { background:#fff3c8; font-weight:900; }.comparison-table-wrap tfoot th { text-align:left; }.comparison-table-wrap tfoot td { text-align:right; }
@media (max-width:900px){.comparison-page{padding:20px 14px}.comparison-selection-tray,.comparison-overview-grid{grid-template-columns:1fr}.comparison-camp-card{grid-template-columns:1fr;gap:10px}.comparison-intro{align-items:flex-start;flex-direction:column}.comparison-report-title{grid-template-columns:1fr}.comparison-overview-grid article h2{min-height:0}}
@media print{#comparisonView .comparison-header,.comparison-report-actions{display:none!important}.comparison-page{padding:0;background:#fff}.comparison-report{margin:0}.comparison-report-title{-webkit-print-color-adjust:exact;print-color-adjust:exact}.comparison-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
#homeView .camp-row {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
}
#homeView .camp-action-heading {
  display:flex;
  justify-content:space-between;
  margin-top:14px;
  padding:8px;
  border-bottom:1px solid var(--line);
  color:var(--muted);
  font-size:11px;
}
#homeView .camp-row.confirmed {
  grid-template-columns:minmax(0,1fr) 145px auto;
}
#homeView .camp-budget-total {
  min-width:0;
  text-align:right;
}
#homeView .camp-budget-total span {
  display:block;
  color:var(--muted);
  font-size:9px;
}
#homeView .camp-budget-total strong {
  display:block;
  margin-top:2px;
  font-size:14px;
  font-variant-numeric:tabular-nums;
}
#homeView .camp-action-heading strong {
  text-align:center;
  color:var(--navy);
}
#homeView .camp-list {
  margin-top:0;
}
#homeView .camp-row {
  padding:12px 8px;
  cursor:default;
}
#homeView .camp-row:hover {
  background:#faf5f1;
}
#homeView .camp-summary {
  min-width:0;
}
#homeView .camp-summary small {
  display:block;
  margin-top:3px;
}
#homeView .camp-row button {
  width:auto;
  min-height:38px;
  padding:8px 10px;
}
#homeView .camp-row-actions { display:flex; align-items:center; justify-content:flex-end; gap:6px; }
#homeView .camp-row-actions .clone-camp,
#homeView .camp-row-actions .delete-camp { min-width:58px; }
.budget-decision-message {
  margin:4px 0 20px;
  color:var(--navy);
  font-size:15px;
  line-height:1.6;
}
.budget-decision-actions {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.budget-decision-actions button {
  min-height:48px;
  border:1px solid;
  font-size:18px;
  font-weight:800;
  cursor:pointer;
}
.budget-decision-actions .budget-no {
  border-color:#d79797;
  background:#fff0f0;
  color:#b42318;
}
.budget-decision-actions .budget-yes {
  border-color:var(--navy);
  background:var(--navy);
  color:#fff;
}
.budget-view-only .report-preview-table input,
.budget-view-only .report-preview-table textarea,
.budget-view-only .report-preview-table select {
  background:transparent;
  color:inherit;
}

/* 최종 리포트는 색을 쓰지 않고, 계정 경계만 가로선으로 구분한다. */
.report-preview-table,
.report-preview-table th,
.report-preview-table td,
.report-preview-table input,
.report-preview-table textarea,
.report-preview-table select,
.report-preview-table tr.report-readonly-row td,
.report-preview-table .report-group-heading td,
.report-preview-table .report-category-cell,
.report-preview-table tfoot th {
  background: #fff !important;
  color: #111 !important;
}

.report-preview-table tbody td {
  border-top: 0;
  border-bottom: 0;
  border-left: 1px solid #777;
  border-right: 1px solid #777;
}

.report-preview-table tbody tr.report-category-start td {
  border-top: 1px solid #111;
}

.report-preview-table tbody tr.report-category-end td,
.report-preview-table tbody .report-category-cell {
  border-bottom: 1px solid #111;
}

.report-preview-table thead th,
.report-preview-table tfoot th {
  border-color: #111;
}

.report-preview-table .report-category-cell span {
  margin-top: 5px;
  font-size: 10px;
  font-variant-numeric: tabular-nums;
}

.report-preview-table .report-formula {
  display: grid;
  grid-template-columns: 1fr 30px 1fr 30px 1.35fr;
  align-items: center;
  gap: 2px;
  text-align: center;
}

.report-preview-table .report-formula input,
.report-preview-table .report-foreign,
.report-preview-table .report-krw,
.report-preview-table tfoot th:nth-last-child(-n+2) {
  text-align: right;
  font-variant-numeric: tabular-nums;
}

.report-preview-table tr.dirty td {
  background: #fff0df;
}

.report-preview-table tr.report-readonly-row td {
  background: #fafafa;
}

.report-preview-table tr.report-readonly-row input:disabled,
.report-preview-table tr.report-readonly-row select:disabled {
  color: var(--navy);
  opacity: 1;
  cursor: default;
}

.report-preview-table tfoot th {
  background: #fff000;
  font-weight: 800;
}

.report-preview-save {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 14px;
  padding: 10px 12px;
  border-top: 1px solid var(--navy);
}

.report-preview-save span {
  color: var(--muted);
  font-size: 11px;
}

.report-payment-summary {
  padding: 18px 20px 22px;
  color: #111;
  font-family: ReportBatang, Batang, serif;
}
.report-payment-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:7px; }
.report-payment-heading h2 { margin:0; font-size:15px; font-weight:400; }
.report-payment-heading p { margin:0; font-size:10px; text-align:right; }
.report-payment-table-wrap { width:100%; overflow-x:auto; }
.report-payment-summary table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:11px; }
.report-payment-summary th,
.report-payment-summary td { padding:4px 7px; border:1px solid #111; background:#fff; color:#111; }
.report-payment-summary thead th { text-align:center; font-weight:400; }
.report-payment-summary tbody th { text-align:center; font-weight:400; }
.report-payment-summary tbody td,
.report-payment-summary tfoot th:not(:first-child) { text-align:right; font-variant-numeric:tabular-nums; }
.report-payment-summary tfoot th { font-weight:700; }

.report-download-area {
  display: flex;
  justify-content: flex-end;
  margin-top: 22px;
  padding-bottom: 20px;
}

.report-download-area .download-report {
  min-width: 240px;
}

/* 인쇄 배율과 용지는 브라우저 설정을 따르고, 표 컨테이너만 내용을 자르지 않는다. */
@media print {
  .topbar,
  .steps,
  .workhead,
  .step-footer,
  .execution-sidebar,
  .execution-head,
  .execution-reset-panel {
    display:none !important;
  }
  .workspace:not(.hidden),
  .execution-workspace:not(.hidden) {
    display:block !important;
    min-height:0 !important;
  }
  .workspace.hidden,
  .execution-workspace.hidden,
  #workspaceView.hidden,
  #executionView.hidden {
    display:none !important;
  }
  .workarea,
  .execution-main {
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 !important;
  }
  body:has(.lodging-matrix-page),
  body:has(.lodging-matrix-page) .workspace,
  body:has(.lodging-matrix-page) .workarea,
  body:has(.lodging-matrix-page) #stepContent,
  body:has(.lodging-matrix-page) .lodging-matrix-page,
  body:has(.lodging-matrix-page) .lodging-matrix-form {
    max-width: none !important;
    overflow: visible !important;
  }
}
.report-preview-table .lodging-report-line {
  display:flex;
  align-items:center;
  gap:4px;
  white-space:nowrap;
}
.report-preview-table .lodging-report-line > input[name="description"] {
  flex:1 1 190px;
  min-width:150px;
}
.report-preview-table .lodging-report-nights {
  flex:0 0 42px;
  width:42px;
  text-align:right;
}
.report-preview-table .lodging-report-rate {
  flex:0 0 82px;
  width:82px;
  text-align:right;
}
.report-preview-table .lodging-inline-currency {
  font-size:80%;
}
.report-preview-table .lodging-report-line .report-note-input {
  flex:0 1 90px;
  min-width:55px;
  height:26px;
  min-height:26px;
  resize:none;
}
.report-preview-table .lodging-text-block-row textarea {
  display:block;
  width:100%;
  min-height:190px;
  padding:8px 10px;
  border:0;
  background:transparent;
  color:inherit;
  font-family:inherit;
  font-size:12px;
  line-height:1.55;
  resize:vertical;
  white-space:pre-wrap;
}
.report-preview-table .lodging-text-block-row textarea:focus {
  outline:1px solid var(--orange);
  background:#fffaf7;
}
.report-preview-table .lodging-text-block-row > td {
  vertical-align:top!important;
}
.report-preview-table th:nth-child(1),
.report-preview-table td:nth-child(1),
.report-preview-table th:nth-child(3),
.report-preview-table td:nth-child(3),
.report-preview-table th:nth-child(4),
.report-preview-table td:nth-child(4),
.report-preview-table th:nth-child(5),
.report-preview-table td:nth-child(5) {
  width:130px!important;
  min-width:130px!important;
  max-width:130px!important;
}
.report-preview-table th:nth-child(1),
.report-preview-table td:nth-child(1),
.report-preview-table th:nth-child(3),
.report-preview-table td:nth-child(3) {
  text-align:center!important;
}
.report-preview-table th:nth-child(4),
.report-preview-table td:nth-child(4) {
  text-align:right!important;
}
.report-preview-table th:nth-child(5),
.report-preview-table td:nth-child(5) {
  text-align:left!important;
}
.report-preview-table th:nth-child(2),
.report-preview-table td:nth-child(2) {
  width:auto!important;
}
.report-preview-table thead th {
  text-align:center!important;
}
.report-preview-table tbody td:nth-child(2) {
  text-align:left!important;
}
.report-preview-table tbody td:nth-child(3),
.report-preview-table tbody td:nth-child(3) select,
.report-preview-table tbody td:nth-child(3) textarea {
  text-align:center!important;
}
.report-preview-table tbody td:nth-child(4),
.report-preview-table tbody td:nth-child(5),
.report-preview-table tfoot th:nth-child(4),
.report-preview-table tfoot th:nth-child(5) {
  padding-right:1em!important;
  text-align:right!important;
}
.report-preview-table thead th:nth-child(4) {
  text-align:center!important;
}
.report-preview-table .lodging-foreign-text {
  padding-right:1em!important;
  text-align:right!important;
}
.report-preview-table .report-category-col,
.report-preview-table .report-currency-col,
.report-preview-table .report-foreign-col,
.report-preview-table .report-krw-col {
  width:130px!important;
}
.report-preview-table .report-detail-col { width:auto!important; }
.report-preview-table tbody .report-detail-cell { text-align:left!important; }
.report-preview-table tbody .report-currency-cell,
.report-preview-table tbody .report-currency-cell select,
.report-preview-table tbody .report-currency-cell textarea { text-align:center!important; }
.report-preview-table tbody .report-foreign,
.report-preview-table tbody .report-krw,
.report-preview-table tfoot .report-total-foreign,
.report-preview-table tfoot .report-total-krw {
  padding-right:1em!important;
  text-align:right!important;
}
.report-preview-table thead th { text-align:center!important; }
.report-preview-table tbody td.report-currency-cell,
.report-preview-table tbody td.report-component-currency.report-currency-cell {
  padding-right:6px!important;
  padding-left:6px!important;
  text-align:center!important;
  vertical-align:middle!important;
}
.report-preview-table tbody td.report-currency-cell > select,
.report-preview-table tbody td.report-currency-cell > textarea,
.report-preview-table tbody td.report-currency-cell > input,
.report-preview-table tbody td.report-currency-cell select,
.report-preview-table tbody td.report-currency-cell textarea,
.report-preview-table tbody td.report-currency-cell input {
  display:block;
  width:100%;
  margin-right:auto;
  margin-left:auto;
  padding-right:0!important;
  padding-left:0!important;
  text-align:center!important;
  text-align-last:center!important;
}
.report-preview-table tbody td.report-currency-cell option {
  text-align:center;
}
.report-preview-table tbody td.report-foreign,
.report-preview-table tbody td.report-krw {
  padding-right:1em!important;
  padding-left:4px!important;
  text-align:right!important;
  vertical-align:middle!important;
  font-variant-numeric:tabular-nums;
}
.report-preview-table tbody td.report-foreign > input,
.report-preview-table tbody td.report-foreign > textarea,
.report-preview-table tbody td.report-krw > input,
.report-preview-table tbody td.report-krw > textarea {
  width:100%;
  padding-right:0!important;
  padding-left:0!important;
  text-align:right!important;
  text-align-last:right!important;
}
.execution-workspace { display:grid; grid-template-columns:210px minmax(0,1fr); min-height:calc(100vh - 64px); background:#fff; }
body:has(#executionView:not(.hidden)) { background:#fff; }
.execution-sidebar { position:sticky; top:64px; height:calc(100vh - 64px); padding:20px 12px; overflow:auto; border-right:1px solid #bfc5cc; background:#fff; }
.execution-sidebar-title { display:grid; gap:3px; padding:4px 10px 18px; border-bottom:2px solid var(--navy); }
.execution-sidebar-title small { color:var(--orange); font-size:9px; letter-spacing:1.5px; }
.execution-sidebar-title strong { font-size:20px; }
.execution-sidebar nav { display:grid; gap:3px; margin-top:12px; }
.execution-sidebar nav button { padding:10px 12px; border:0; background:transparent; color:var(--muted); text-align:left; cursor:pointer; }
.execution-sidebar nav button.active { background:var(--navy); color:#fff; font-weight:800; }
.execution-main { min-width:0; padding:20px 24px 50px; }
.execution-head { display:flex; align-items:center; justify-content:space-between; gap:16px; min-width:0; margin-bottom:14px; padding-bottom:12px; border-bottom:2px solid var(--navy); }
.execution-head > div:first-child { flex:1 1 auto; min-width:120px; }
.execution-head-actions { display:flex; flex:0 1 auto; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
#executionHome { display:inline-flex!important; flex:0 0 auto; align-items:center; justify-content:center; border-color:var(--navy); background:var(--navy); color:#fff; white-space:nowrap; }
#confirmAdvanceExchange { border-color:#b67910; background:#fff4d8; color:#785000; font-weight:700; }
#editExecutionExchange { border-color:#738096; background:#eef1f5; color:var(--navy); font-weight:700; }
.execution-rate-form table input { width:100%; min-width:120px; text-align:right; }
.execution-csv-preview-modal .modal { width:min(96vw,1800px); max-width:none; }
.execution-csv-preview-modal .modal-body { padding:8px; }
.execution-csv-preview-guide,.execution-csv-preview-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 10px; }
.execution-csv-preview .execution-matrix-wrap { max-height:68vh; overflow:auto; }
.execution-csv-preview table { min-width:1450px; }
.execution-csv-preview th,.execution-csv-preview td { padding:4px 6px!important; white-space:nowrap; vertical-align:middle; }
.execution-csv-preview td:nth-child(7),.execution-csv-preview td:nth-child(8) { max-width:240px; overflow:hidden; text-overflow:ellipsis; }
.execution-csv-preview tr.duplicate td { background:#fff1f1; color:#7b3030; }
.execution-csv-preview tr.duplicate td:nth-child(2) b { color:#b42318; }
.execution-csv-preview-actions { border-top:1px solid #ccd2da; }
.execution-head h1 { margin:2px 0 0; font-size:28px; }
.execution-kpis { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:12px; }
.execution-kpis article { padding:14px 16px; border:1px solid #c8cdd3; background:#fff; }
.execution-kpis span { display:block; color:var(--muted); font-size:10px; }
.execution-kpis strong { display:block; margin-top:4px; font-size:20px; text-align:right; }
.execution-panel { margin-bottom:12px; border:1px solid #c8cdd3; background:#fff; }
.execution-panel-head { display:flex; align-items:baseline; justify-content:space-between; gap:16px; padding:11px 13px; border-bottom:1px solid #c8cdd3; }
.execution-panel-head h2 { margin:0; font-size:16px; }
.execution-panel-head small { color:var(--muted); }
.execution-dashboard-head-right { display:flex; align-items:center; gap:12px; }
.execution-dashboard-unit { color:var(--muted); font-size:13px; white-space:nowrap; margin-left:auto; }
.execution-table,.execution-matrix { width:100%; border-collapse:collapse; table-layout:fixed; font-size:11px; }
.execution-table th,.execution-matrix th { padding:7px 5px; border:1px solid #aeb5bd; background:#e7eaed; color:#1f2933; text-align:center; white-space:nowrap; }
.execution-table td,.execution-matrix td { padding:5px; border:1px solid #c8cdd3; text-align:center; vertical-align:middle; }
.execution-table .num { padding-right:10px; text-align:right; font-variant-numeric:tabular-nums; }
.execution-matrix-wrap { width:100%; overflow:auto; }
.execution-matrix { width:max-content; min-width:100%; }
.execution-matrix th { min-width:118px; }
.execution-matrix th:first-child { min-width:82px; }
.execution-matrix th:nth-child(2) { min-width:90px; }
.execution-matrix th small { display:block; margin-top:2px; color:#68717e; font-size:8px; }
.execution-cost-cell { position:relative; min-width:118px; min-height:62px; padding:5px 28px 5px 5px!important; }
.execution-cost-cell strong,.execution-cost-cell span,.execution-cost-cell b { display:block; }
.execution-cost-cell b { margin-top:3px; font-size:10px; }
.execution-empty-cell { color:#a1a8b0; background:#f6f7f8; }
.execution-paid-toggle { display:grid; place-items:center; position:absolute; right:4px; bottom:4px; width:21px; height:21px; padding:0; border-radius:50%; font-weight:900; cursor:pointer; }
.execution-paid-toggle.paid,.ledger-paid-toggle.paid { border:1px solid #16834b; background:#e8f7ef; color:#16834b; }
.execution-paid-toggle.unpaid,.ledger-paid-toggle.unpaid { border:1px solid #c73832; background:#fff0ef; color:#c73832; }
.execution-paid-toggle span { display:none; }
.execution-pay-row { padding:6px 8px; border:1px solid var(--navy); background:#fff; color:var(--navy); font-size:9px; cursor:pointer; }
.execution-lodging-cell { position:relative; }
.lodging-room-day-matrix .execution-lodging-payment-head,
.lodging-room-day-matrix .execution-lodging-row-payment { width:78px; min-width:78px; max-width:78px; text-align:center!important; }
.lodging-room-day-matrix .execution-lodging-row-payment { padding:3px!important; background:#fff; }
.execution-lodging-room-panel { width:100%; min-width:0; }
.execution-meal-cell { position:relative; height:86px; padding:6px 28px 28px 6px!important; text-align:left!important; }
.execution-meal-cell > div { max-height:42px; overflow:hidden; line-height:1.35; }
.execution-meal-cell footer { position:absolute; right:4px; bottom:4px; left:5px; display:flex; align-items:center; gap:5px; padding-top:3px; border-top:1px solid #c8cdd3; white-space:nowrap; }
.execution-meal-cell footer .execution-paid-toggle { position:static; flex:0 0 21px; margin-left:auto; }
.execution-meal-table tfoot .execution-meal-grand-total th { padding:8px 6px!important; background:var(--navy); color:#fff; text-align:center!important; vertical-align:middle!important; }
.execution-meal-table tfoot .execution-meal-grand-total th:last-child { text-align:right!important; padding-right:10px!important; }
.execution-meal-table tfoot .execution-meal-grand-total th strong,
.execution-meal-table tfoot .execution-meal-grand-total th span { display:block; }
.execution-meal-table tfoot .execution-meal-grand-total th span { margin-top:2px; font-size:11px; font-weight:500; }
.execution-meal-cell.selected { box-shadow:inset 0 0 0 2px var(--navy); background:#f4f7fb!important; }
.execution-meal-day-total { min-width:138px; text-align:center!important; }
.execution-meal-day-total strong { display:block; margin-bottom:5px; text-align:right; }
.execution-meal-apply-below { width:100%; padding:4px 5px!important; font-size:11px!important; white-space:nowrap; }
.execution-meal-unit-editor { display:flex; align-items:end; gap:10px; padding:10px 12px; border-top:1px solid #c8cdd3; background:#f7f8fa; }
.execution-meal-unit-editor[hidden] { display:none; }
.execution-meal-unit-editor strong { align-self:center; min-width:190px; color:var(--navy); }
.execution-meal-unit-editor label { display:grid; gap:3px; margin:0; font-size:12px; }
.execution-meal-unit-editor input { width:140px; height:32px; padding:4px 7px; }
.execution-meal-unit-editor button { height:32px; padding:4px 18px!important; }
.execution-rate { position:relative; display:inline-block; width:90px; height:7px; margin-right:6px; overflow:hidden; background:#dce0e4; vertical-align:middle; }
.execution-rate::after { content:''; position:absolute; top:0; bottom:0; left:80%; width:1px; background:rgba(12,25,48,.45); }
.execution-rate i { display:block; height:100%; background:#e99aaa; }
.execution-rate.over-budget i { background:#d62828; }
.execution-reset-panel { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:28px; padding:14px 16px; border:1px solid #e4aaa6; background:#fff7f6; }
.execution-reset-panel div { display:grid; gap:3px; }
.execution-reset-panel small { color:#8d4a45; }
.execution-csv-actions { display:flex; align-items:center; gap:6px; }
.execution-csv-actions button { padding:6px 10px; font-size:10px; }
.execution-ledger-check { width:34px!important; min-width:34px!important; max-width:34px!important; padding:2px!important; text-align:center!important; }
.execution-ledger-check input { width:15px!important; height:15px!important; margin:0!important; accent-color:var(--navy); }
.save-checked-ledger-rows { margin-left:auto; padding:6px 10px; border:1px solid #90c7a1; background:#eaf7ee; color:#176b35; font-size:11px; font-weight:700; }
.delete-checked-ledger-rows { margin-left:auto; padding:6px 10px; border:1px solid #e4aaa6; background:#fff0ef; color:#a12820; font-size:11px; font-weight:700; }
.delete-checked-ledger-rows + .save-checked-ledger-rows { margin-left:0; }
.save-checked-laundry-days { margin-left:auto; padding:6px 10px; border:1px solid #90c7a1; background:#eaf7ee; color:#176b35; font-size:11px; font-weight:700; }
.execution-ledger-head-actions { display:flex; align-items:center; justify-content:flex-end; gap:12px; min-width:0; }
.execution-ledger-search { display:flex; align-items:center; width:230px; min-width:170px; height:30px; border:1px solid #aeb6c1; background:#fff; }
.execution-ledger-search input { width:100%; min-width:0; height:28px; padding:4px 7px; border:0; outline:0; font-size:12px; }
.execution-ledger-search button { width:28px; height:28px; padding:0!important; border:0; background:transparent; color:#737d89; font-size:17px; }
.execution-ledger-filter-dropdown { position:relative; }
.execution-ledger-filter-dropdown summary { min-width:126px; padding:7px 10px; border:1px solid #aeb6c1; background:#fff; color:var(--navy); font-size:11px; font-weight:700; cursor:pointer; list-style:none; }
.execution-ledger-filter-dropdown summary::-webkit-details-marker { display:none; }
.execution-ledger-filter-dropdown summary::after { content:'▾'; float:right; margin-left:10px; }
.execution-ledger-filter-dropdown[open] summary::after { content:'▴'; }
.execution-ledger-filter-dropdown summary small { color:#737d89; font-size:9px; }
.execution-ledger-filter-menu { position:absolute; top:calc(100% + 4px); right:0; z-index:90; width:230px; padding:8px; border:1px solid #aeb6c1; background:#fff; box-shadow:5px 5px 0 rgba(12,25,48,.14); }
.execution-ledger-filter-all { display:grid; grid-template-columns:1fr 1fr; gap:5px; margin-bottom:6px; }
.execution-ledger-filter-all button { padding:5px; border:1px solid #cbd0d6; background:#f5f6f7; color:var(--navy); font-size:10px; font-weight:700; cursor:pointer; }
.execution-ledger-filters { display:grid; grid-template-columns:1fr; gap:2px; max-height:330px; overflow:auto; }
.execution-ledger-filters label { display:grid; grid-template-columns:16px minmax(0,1fr) auto; align-items:center; gap:5px; min-height:25px; padding:2px 4px; color:#3f4852; font-size:10px; font-weight:600; white-space:nowrap; }
.execution-ledger-filters label:hover { background:#fff7ed; }
.execution-ledger-filters input { width:13px; height:13px; margin:0; padding:0; }
.execution-ledger-filters label small { color:#8a929b; font-size:8px; font-weight:500; }
.execution-ledger-hidden { display:none; }
.execution-sortable { position:relative; padding-right:15px!important; cursor:pointer; user-select:none; }
.execution-sortable::after { content:'↕'; position:absolute; right:4px; color:#7b848e; font-size:8px; opacity:.65; }
.execution-sortable.sort-asc::after { content:'▲'; color:var(--navy); opacity:1; }
.execution-sortable.sort-desc::after { content:'▼'; color:var(--navy); opacity:1; }
.execution-order-column { width:52px; text-align:center!important; font-variant-numeric:tabular-nums; }
.lodging-room-matrix-guide { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:6px 8px; border:1px solid #aeb5bd; border-bottom:0; background:#fff; font-size:10px; }
.lodging-room-matrix-wrap { width:100%; overflow:visible; }
.lodging-room-day-matrix { width:max-content; min-width:100%; table-layout:fixed; }
.lodging-room-day-matrix th { width:138px; min-width:138px; text-align:center; }
.lodging-room-day-matrix th:first-child { width:76px; min-width:76px; }
.lodging-room-day-matrix th:nth-child(2) { width:82px; min-width:82px; }
.lodging-room-day-matrix th small { display:block; color:#d7dce1; font-size:8px; }
.lodging-room-day-cell { height:58px; padding:3px 5px!important; text-align:center!important; cursor:default; }
.lodging-room-day-cell span,.lodging-room-day-cell small,.lodging-room-day-cell strong { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lodging-room-day-cell small { color:#59636e; font-size:8px; }
.lodging-room-day-cell strong { margin-top:2px; font-size:9px; }
.lodging-cell-occupants { font-size:10px; font-weight:700; }
.lodging-room-head { cursor:context-menu; }
.lodging-occupant-validation { display:grid; gap:4px; padding:6px; border:1px solid #d3d7dc; background:#f7f8f9; }
.occupant-match-row { display:grid; grid-template-columns:90px minmax(0,1fr); align-items:center; gap:7px; min-height:27px; font-size:10px; }
.occupant-match-row strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.occupant-match-row select { height:28px; padding:3px 6px; }
.occupant-match-row.unmatched { color:var(--danger); }
.occupant-match-row.unmatched:has(.add-execution-occupant) { grid-template-columns:90px minmax(0,1fr) auto; }
.add-execution-occupant { padding:4px 7px!important; font-size:9px; white-space:nowrap; }
.lodging-occupant-validation.invalid { border-color:#e4aaa6; background:#fff2f1; }
.occupant-match-row.excluded { opacity:.42; text-decoration:line-through; }
.lodging-verified-occupants { display:flex; align-items:center; gap:4px; flex-wrap:wrap; margin-top:3px; padding-top:6px; border-top:1px solid #d3d7dc; }
.lodging-verified-occupants>span { display:flex; align-items:center; gap:4px; padding:3px 4px 3px 7px; border:1px solid #c7cdd3; background:#fff; font-size:10px; }
.lodging-verified-occupants>span small { color:#727b85; font-size:8px; }
.lodging-verified-occupants button { width:17px; height:17px; padding:0; border:0; background:#f4dddd; color:#a52d28; cursor:pointer; line-height:1; }
.roster-table .roster-jersey { text-align:center; }
.roster-table .roster-jersey-head,.roster-table td:has(.roster-jersey) { width:64px; text-align:center; }
.roster-row.ambiguous td { background:#fff4df; }
.roster-duplicate-picker { display:grid; gap:7px; }
.roster-duplicate-picker>p { margin:0 0 5px; color:#6c737c; font-size:11px; }
.roster-duplicate-picker>button { display:grid; grid-template-columns:1.2fr .65fr 1.2fr .9fr; align-items:center; gap:8px; width:100%; padding:9px 11px; border:1px solid #c9ced4; background:#fff; color:var(--navy); text-align:left; cursor:pointer; }
.roster-duplicate-picker>button:hover { border-color:var(--orange); background:#fff7f1; }
.roster-duplicate-picker>button small { color:#737c86; }
.occupant-match-row>div { display:grid; gap:2px; }
.occupant-match-row>div>span { display:block; font-size:9px; }
.occupant-match-row.duplicate { align-items:start; background:#fff8e8; }
.lodging-room-day-cell.inactive { background:#f6f7f8; }
.lodging-room-day-cell.selected { outline:2px solid var(--orange); outline-offset:-2px; }
.lodging-room-day-cell.selected { background:rgba(252,78,0,.1); }
.lodging-room-day-cell { user-select:none; }
.lodging-date-cell { position:relative; white-space:nowrap; padding:2px 12px 2px 2px!important; text-align:center; }
.add-lodging-date-between { position:absolute; left:2px; bottom:-8px; z-index:3; width:15px; height:15px; padding:0; border:1px solid var(--navy); border-radius:50%; background:#fff; color:var(--navy); font-size:11px; line-height:13px; cursor:pointer; }
.add-lodging-date-between:hover { background:var(--navy); color:#fff; }
.lodging-room-head.selected { outline:2px solid var(--orange); outline-offset:-2px; background:rgba(252,78,0,.14)!important; }
.lodging-room-head { position:relative; }
.execution-room-drag-handle { position:absolute; top:2px; right:2px; width:18px; height:18px; padding:0!important; border:0; background:transparent; color:#7b8490; font-size:11px; line-height:18px; cursor:grab; }
.execution-room-drag-handle:active { cursor:grabbing; }
.execution-lodging-room-panel .lodging-room-head.room-column-dragging { opacity:.45; }
.execution-lodging-room-panel .lodging-room-head.room-column-drop-target { box-shadow:inset 3px 0 0 var(--orange); }
.add-room-column-between { position:absolute; right:-8px; top:50%; z-index:5; width:15px; height:15px; margin-top:-7px; padding:0; border:1px solid var(--navy); border-radius:50%; background:#fff; color:var(--navy); font-size:11px; line-height:13px; cursor:pointer; }
.add-room-column-between:hover { background:var(--navy); color:#fff; }
.lodging-room-day-matrix th:first-child,
.lodging-room-day-matrix tbody td:first-child { position:sticky!important; left:0!important; right:auto!important; z-index:9; width:76px; min-width:76px; background:#fff; }
.lodging-room-day-matrix thead th:first-child { position:sticky!important; left:0!important; right:auto!important; z-index:12; background:var(--navy); }
.lodging-room-day-matrix th:nth-child(2),
.lodging-room-day-matrix tbody td:nth-child(2) { position:sticky!important; left:76px!important; right:auto!important; z-index:8; width:82px; min-width:82px; background:#fff; }
.lodging-room-day-matrix thead th:nth-child(2) { position:sticky!important; left:76px!important; right:auto!important; z-index:12; background:var(--navy); }
.lodging-room-day-matrix tbody tr.lodging-rest-row > td:first-child,
.lodging-room-day-matrix tbody tr.lodging-rest-row > td:nth-child(2) { background:#fff0f4; }
.lodging-room-day-matrix tbody tr.lodging-travel-row > td:first-child,
.lodging-room-day-matrix tbody tr.lodging-travel-row > td:nth-child(2) { background:#edf6ff; }
.lodging-selected-occupants { display:flex; gap:4px; flex-wrap:wrap; min-height:26px; padding:5px; border:1px solid #d3d7dc; background:#f7f8f9; }
.lodging-selected-occupants span { padding:3px 6px; background:#e8ebee; font-size:10px; }
.execution-ledger-form { display:grid; grid-template-columns:182px 1.1fr 1.1fr 1fr 90px 1.5fr 110px 80px 110px auto 90px; gap:0; padding:12px; }
.execution-ledger-form label { gap:3px; padding:0 3px; font-size:16.2px; }
.execution-ledger-form input { height:34px; padding:5px 6px; }
.execution-ledger-form input:not([type="checkbox"]),
.execution-ledger-form select,
.execution-ledger-form textarea { font-size:16.2px; }
.execution-ledger-form .execution-paid-field { display:flex; align-items:center; justify-content:center; gap:4px; padding-top:14px; white-space:nowrap; }
.execution-ledger-form .execution-paid-field input { width:15px; height:15px; }
.execution-ledger-form button { align-self:end; height:34px; padding:4px 8px; }
.execution-ledger-form label button { font-size:9px; }
.execution-ledger-user-field { min-width:0; }
.execution-ledger-form .execution-ledger-user-picker { width:100%; overflow:hidden; border-color:#9aa4b2; background:#fff; color:var(--navy); font-size:14px; text-overflow:ellipsis; white-space:nowrap; }
.ledger-paid-toggle { width:24px; height:24px; padding:0; border-radius:50%; font-weight:900; }
.delete-ledger-row { border:0; background:transparent; color:#b42318; cursor:pointer; }
.execution-ledger-edit-table td { padding:2px!important; }
.execution-ledger-edit-table input { width:100%; min-width:70px; height:29px; padding:3px 5px; border:1px solid transparent; background:transparent; font:inherit; }
.execution-ledger-edit-table input:focus { border-color:var(--orange); background:#fff; outline:0; }
.budget-ledger-edit-table .other-meal-account-column input { width:100%; min-width:0; }
.execution-ledger-edit-table tr.dirty td { background:#fff3df; }
.execution-ledger-edit-table .save-ledger-row { padding:5px 8px; border:1px solid #237a4b; background:#eaf7ef; color:#17663d; white-space:nowrap; cursor:pointer; }
.execution-ledger-edit-table .execution-ledger-krw { min-width:92px; white-space:nowrap; }
.ledger-status-buttons { white-space:nowrap; }

/* 예산 편성 공통표는 원장 입력의 화면 문법을 그대로 공유한다.
   데이터 저장 구조는 expenses로 유지하고, 원장 전용 열 너비 규칙만 분리한다. */
.budget-ledger-panel { padding:0!important; border:1px solid #aeb5bd; background:#fff; box-shadow:none; }
.budget-ledger-panel > .budget-ledger-panel-head { min-height:42px; margin:0; padding:6px 10px; border-bottom:1px solid #aeb5bd; background:#fff; }
.budget-ledger-panel > .budget-ledger-panel-head h2 { margin:0; color:var(--navy); font-size:14px; font-weight:800; }
.budget-ledger-form { margin:0; padding:0; }
.budget-ledger-matrix-wrap { width:calc(100% + 18px); margin:0 -18px 0 0; overflow-x:auto; }
.budget-ledger-edit-table { width:100%; min-width:980px; border-collapse:collapse; table-layout:fixed; }
.budget-ledger-edit-table th { height:31px; padding:4px!important; border:1px solid #aeb5bd; background:var(--navy); color:#fff; font-size:10px; font-weight:700; text-align:center; vertical-align:middle; white-space:nowrap; }
.budget-ledger-edit-table td { height:32px; padding:2px!important; border:1px solid #c9ced4; background:#fff; font-size:10px; vertical-align:middle!important; }
.budget-ledger-edit-table td input:not([type="checkbox"]),
.budget-ledger-edit-table td select,
.budget-ledger-edit-table td textarea { width:100%; min-width:0; height:28px; margin:0; padding:3px 5px; border:1px solid transparent; border-radius:0; background:transparent; color:var(--navy); font:inherit; }
.budget-ledger-edit-table td input:not([type="checkbox"]):focus,
.budget-ledger-edit-table td select:focus,
.budget-ledger-edit-table td textarea:focus,
.budget-ledger-edit-table [contenteditable="true"]:focus { border-color:var(--orange)!important; background:#fff!important; outline:0; }
.budget-ledger-edit-table tr.dirty td,
.budget-ledger-edit-table tr.other-meal-input-row td { background:#fff3df; }
.budget-ledger-edit-table tr[data-expense-id]:hover td { background:#fffaf0; }
.budget-ledger-edit-table .other-meal-save-check,
.budget-ledger-edit-table .select-all-other-meals { display:block; width:15px!important; min-width:15px!important; height:15px!important; margin:0 auto!important; padding:0!important; }
.budget-ledger-edit-table .copy-other-meal { height:24px!important; padding:3px 7px!important; border:1px solid #aeb6c1; background:#f5f6f7; color:var(--navy); font-size:10px; font-weight:700; white-space:nowrap; cursor:pointer; }
.budget-ledger-edit-table .other-meal-actions { display:flex; align-items:center; justify-content:center; gap:2px; min-width:108px; }
.budget-ledger-edit-table .other-meal-actions button { width:auto!important; min-width:32px!important; height:24px!important; padding:3px 5px!important; border:1px solid #aeb6c1!important; background:#f5f6f7; color:var(--navy); font-size:10px; font-weight:700; white-space:nowrap; cursor:pointer; }
.budget-ledger-edit-table .other-meal-actions .delete-other-meal-row { border-color:#efb7b7!important; background:#fff0f0; color:#a51f1f; }
.budget-ledger-edit-table .other-meal-actions .save-other-meal-row { border-color:#acd4b6!important; background:#effaf2; color:#176b35; }
.budget-ledger-edit-table .other-meal-actions,
.budget-ledger-edit-table .other-meal-delete { padding-left:1px!important; padding-right:1px!important; text-align:center!important; }
.budget-ledger-edit-table .inline-krw-preview { padding-right:6px!important; text-align:right!important; font-variant-numeric:tabular-nums; }
.budget-ledger-edit-table .sortable-other-meal-head { position:relative; cursor:pointer; user-select:none; }
.budget-ledger-edit-table .sortable-other-meal-head:hover { background:#172b49; }
.budget-ledger-entry { margin:0; border-width:0 0 1px; }
.budget-ledger-entry-head,
.budget-ledger-list-head { min-height:38px; padding:5px 10px!important; border-top:1px solid #aeb5bd; border-bottom:1px solid #aeb5bd; background:#fff; }
.budget-ledger-entry-head h2,
.budget-ledger-list-head h2 { margin:0; color:var(--navy); font-size:14px; font-weight:800; }
.budget-ledger-entry-wrap { overflow-x:auto; }
.budget-ledger-entry .budget-ledger-edit-table { margin:0; }
.budget-ledger-entry .other-meal-input-row td { background:#fff; }
.budget-ledger-list-head + .budget-ledger-matrix-wrap { border-top:0; }
.budget-expense-ledger-form { grid-template-columns:1fr 1.65fr 1.25fr 1fr 1.35fr 1fr .68fr 1fr auto; padding:12px; }
.budget-expense-ledger-form .execution-ledger-date-control { display:grid; grid-template-columns:minmax(0,1fr) 44px 58px; }
.budget-expense-ledger-form .budget-expense-date-text { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.budget-expense-ledger-form .budget-expense-calendar { height:34px; padding:4px 3px; border:1px solid #9aa4b2; border-left:0; background:#f5f6f7; color:var(--navy); }
.budget-expense-frequency-control { display:grid; grid-template-columns:minmax(0,1fr) 15px; align-items:center; height:34px; border:1px solid #9aa4b2; border-left:0; background:#fff; }
.budget-expense-frequency-control input { width:100%; min-width:0; height:32px!important; padding:3px!important; border:0; text-align:right; }
.budget-expense-frequency-control small { font-size:10px; }
.budget-expense-user-field { display:grid; grid-template-columns:minmax(0,1fr) 48px 34px; }
.budget-expense-user-field input { width:100%; min-width:0; padding:3px!important; text-align:center; }
.budget-expense-ledger-form .save-budget-expense { min-width:104px; white-space:nowrap; }
.budget-ledger-entry-actions { display:flex; align-items:center; gap:6px; margin-left:auto; }
.budget-ledger-entry-actions button { min-height:28px; padding:5px 9px; font-size:10px; font-weight:700; cursor:pointer; }
.budget-ledger-entry-actions .budget-delete-checked { border:1px solid #e4aaa6; background:#fff0ef; color:#a12820; }
.budget-ledger-entry-actions .budget-save-checked { border:1px solid #90c7a1; background:#eaf7ee; color:#176b35; }

/* 공통 편성 항목은 집행 원장과 같은 전체 페이지 셸을 사용한다. */
.workspace.budget-ledger-workspace { width:100%; max-width:none; grid-template-columns:210px minmax(0,1fr); min-height:calc(100vh - 64px); background:#eef0f2; }
.workspace.budget-ledger-workspace > .steps { position:sticky; top:64px; height:calc(100vh - 64px); padding:20px 12px; overflow:auto; border-right:1px solid #bfc5cc; background:#fff; }
.workspace.budget-ledger-workspace > .steps::before { content:'예산 편성'; display:block; margin:4px 10px 12px; padding:0 0 18px; border-bottom:2px solid var(--navy); color:var(--navy); font-size:20px; font-weight:800; }
.workspace.budget-ledger-workspace > .steps .step { display:block; width:100%; padding:10px 12px; border:0; background:transparent; color:var(--muted); text-align:left; }
.workspace.budget-ledger-workspace > .steps .step b { display:none; }
.workspace.budget-ledger-workspace > .steps .step.active { background:var(--navy); color:#fff; font-weight:800; }
.workspace.budget-ledger-workspace > .steps .step.done { color:var(--muted); }
.workspace.budget-ledger-workspace > .steps .step.done.active { color:#fff; }
.workspace.budget-ledger-workspace > .workarea { width:100%!important; max-width:none; min-width:0; justify-self:stretch; padding:20px 0 50px 24px; }
.workspace.budget-ledger-workspace:has(.budget-ledger-total-bar) > .workarea { padding-bottom:76px; }
.budget-ledger-total-bar { left:210px; }

/* 편성 공통 원장: 사진 기준 열 비율 */
.budget-ledger-edit-table { width:100%!important; min-width:100%!important; max-width:100%!important; table-layout:fixed!important; }
.budget-ledger-edit-table th,
.budget-ledger-edit-table td { box-sizing:border-box; }
.budget-ledger-edit-table td input:not([type="checkbox"]),
.budget-ledger-edit-table td select,
.budget-ledger-edit-table td textarea { width:100%!important; min-width:0!important; max-width:100%!important; }
.budget-ledger-edit-table col.other-meal-frequency-col { width:0!important; }
.budget-ledger-edit-table th:first-child,
.budget-ledger-edit-table td:first-child { width:3.508772%!important; min-width:0!important; max-width:none!important; }
.budget-ledger-edit-table .other-meal-account-column,
.budget-ledger-edit-table .other-meal-item-column,
.budget-ledger-edit-table td:has(> [name="subcategory"]),
.budget-ledger-edit-table .other-meal-date-column,
.budget-ledger-edit-table .other-meal-participant-column,
.budget-ledger-edit-table td:has(.selected-participant-names),
.budget-ledger-edit-table .other-meal-local-total-column { width:8.333333%!important; min-width:0!important; max-width:none!important; }
.budget-ledger-edit-table .other-meal-account-column,
.budget-ledger-edit-table .other-meal-item-column,
.budget-ledger-edit-table td:has(> [name="subcategory"]),
.budget-ledger-edit-table .other-meal-date-column,
.budget-ledger-edit-table .other-meal-participant-column,
.budget-ledger-edit-table td:has(.selected-participant-names) { width:7.017544%!important; }
.budget-ledger-edit-table .other-meal-memo-column { width:28.070176%!important; min-width:0!important; max-width:none!important; }
.budget-ledger-edit-table .other-meal-formula-column { width:8.77193%!important; min-width:0!important; max-width:none!important; }
.budget-ledger-edit-table .other-meal-currency-column { width:5.263158%!important; min-width:0!important; max-width:none!important; }
.budget-ledger-edit-table .other-meal-payment-column { width:3.508772%!important; min-width:0!important; max-width:none!important; }
.budget-ledger-edit-table .inline-krw-preview { width:8.333333%!important; min-width:0!important; max-width:none!important; }
.budget-ledger-edit-table .other-meal-actions-column,
.budget-ledger-edit-table .other-meal-actions { width:8.77193%!important; min-width:0!important; max-width:none!important; }
.budget-ledger-edit-table td.other-meal-actions { display:table-cell!important; padding-right:1px!important; padding-left:1px!important; overflow:hidden; text-align:center!important; white-space:nowrap; }
.budget-ledger-edit-table .other-meal-actions button { display:inline-block!important; box-sizing:border-box!important; width:calc((100% - 6px)/3)!important; min-width:0!important; max-width:none!important; margin:0 1px 0 0!important; padding-right:0!important; padding-left:0!important; overflow:hidden; font-size:8px; line-height:1; text-align:center; }
.budget-ledger-edit-table .other-meal-actions button:last-child { margin-right:0!important; }
.workspace.budget-ledger-workspace .workhead { min-height:0; margin-bottom:14px; padding-bottom:12px; border-bottom:2px solid var(--navy); }
.workspace.budget-ledger-workspace .workhead > div { display:flex; align-items:baseline; gap:12px; min-width:0; }
.workspace.budget-ledger-workspace .workhead .eyebrow { font-size:9px; }
.workspace.budget-ledger-workspace .workhead h1 { margin:2px 0 0; font-family:inherit; font-size:28px; font-weight:800; line-height:1; }
.workspace.budget-ledger-workspace .workhead #stepHelp { margin:0; font-size:11px; }
.workspace.budget-ledger-workspace .step-footer { display:none!important; }
.workspace.budget-ledger-workspace #stepContent,
.workspace.budget-ledger-workspace #stepContent > .panel,
.workspace.budget-ledger-workspace #stepContent > .panel > .panel-body,
.workspace.budget-ledger-workspace #stepContent .budget-ledger-form { width:100%; max-width:none; min-width:0; }
.workspace.budget-ledger-workspace #stepContent > .panel { margin-right:0; margin-bottom:12px; }
.workspace.budget-ledger-workspace #stepContent > .panel > .panel-body { padding-right:0; }
.workspace.budget-ledger-workspace .budget-ledger-matrix-wrap { width:100%; margin-right:0; }

/* 편성 기존 입력 목록은 보이는 셀 자체의 너비만 사용한다. */
.workspace.budget-ledger-workspace .budget-ledger-matrix-wrap {
  width:100%!important;
  max-width:none!important;
  margin-right:0!important;
}
.workspace.budget-ledger-workspace .budget-ledger-edit-table tbody .other-meal-local-total-column,
.workspace.budget-ledger-workspace .budget-ledger-edit-table tbody .other-meal-local-total-column > *,
.workspace.budget-ledger-workspace .budget-ledger-edit-table tbody .inline-krw-preview {
  text-align:right!important;
}
.workspace.budget-ledger-workspace .budget-ledger-edit-table {
  table-layout:fixed!important;
}
.workspace.budget-ledger-workspace .budget-ledger-edit-table tbody .other-meal-local-total-column > span,
.workspace.budget-ledger-workspace .budget-ledger-edit-table tbody .other-meal-local-total-column > small {
  display:inline!important;
}

/* 원장 표: 보조 열은 압축하고 체크·적요 공간을 확보한다. */
.execution-ledger-edit-table th:nth-child(1),
.execution-ledger-edit-table td:nth-child(1) { width:50px!important; min-width:50px!important; max-width:50px!important; text-align:center!important; vertical-align:middle!important; }
.execution-ledger-edit-table .execution-ledger-check input { display:block; width:15px!important; min-width:15px!important; max-width:15px!important; height:15px!important; margin:0 auto!important; padding:0!important; }
.execution-ledger-edit-table th:nth-child(6),
.execution-ledger-edit-table td:nth-child(6) { width:auto; min-width:230px; }
.execution-ledger-edit-table th:nth-child(8),
.execution-ledger-edit-table td:nth-child(8) { width:42px!important; min-width:42px!important; max-width:42px!important; }
.execution-ledger-edit-table th:nth-child(10),
.execution-ledger-edit-table td:nth-child(10) { width:55px!important; min-width:55px!important; max-width:55px!important; }
.execution-ledger-edit-table th:nth-child(11),
.execution-ledger-edit-table td:nth-child(11),
.execution-ledger-edit-table th:nth-child(12),
.execution-ledger-edit-table td:nth-child(12) { width:42px!important; min-width:42px!important; max-width:42px!important; }
.execution-ledger-edit-table th:nth-child(13),
.execution-ledger-edit-table td:nth-child(13) { width:28px!important; min-width:28px!important; max-width:28px!important; }
.execution-ledger-edit-table td:nth-child(8) input,
.execution-ledger-edit-table td:nth-child(10) input { min-width:0!important; padding-left:2px!important; padding-right:2px!important; }
.execution-ledger-edit-table td:nth-child(11),
.execution-ledger-edit-table td:nth-child(12),
.execution-ledger-edit-table td:nth-child(13) { padding-left:0!important; padding-right:0!important; text-align:center!important; }
.execution-ledger-edit-table .ledger-status-buttons button,
.execution-ledger-edit-table .save-ledger-row,
.execution-ledger-edit-table .delete-ledger-row { padding-left:3px!important; padding-right:3px!important; max-width:100%; }

/* 원장 열 재배분: 남는 가로 공간은 적요가 사용한다. */
.execution-ledger-edit-table th:nth-child(2),
.execution-ledger-edit-table td:nth-child(2) { width:126px!important; min-width:126px!important; max-width:126px!important; text-align:center!important; }
.execution-ledger-edit-table td:nth-child(2) input { min-width:0!important; text-align:center!important; padding-left:1px!important; padding-right:1px!important; }
.execution-ledger-edit-table th:nth-child(3),
.execution-ledger-edit-table td:nth-child(3) { width:70px!important; min-width:70px!important; max-width:70px!important; }
.execution-ledger-edit-table td:nth-child(3) input { min-width:0!important; }
.execution-ledger-edit-table th:nth-child(4),
.execution-ledger-edit-table td:nth-child(4) { width:120px!important; min-width:120px!important; max-width:120px!important; }
.execution-ledger-edit-table td:nth-child(4) input { min-width:0!important; }
.execution-ledger-edit-table th:nth-child(6),
.execution-ledger-edit-table td:nth-child(6) { width:auto!important; min-width:324px!important; max-width:none!important; }
.execution-ledger-edit-table th:nth-child(7),
.execution-ledger-edit-table td:nth-child(7) { width:91px!important; min-width:91px!important; max-width:91px!important; }
.execution-ledger-edit-table td:nth-child(7) input { min-width:0!important; }
.execution-ledger-edit-table th:nth-child(8),
.execution-ledger-edit-table td:nth-child(8) { width:50px!important; min-width:50px!important; max-width:50px!important; }
.execution-ledger-edit-table th:nth-child(9),
.execution-ledger-edit-table td:nth-child(9),
.execution-ledger-edit-table .execution-ledger-krw { width:86px!important; min-width:86px!important; max-width:86px!important; }
.execution-ledger-edit-table td:nth-child(9) input { min-width:0!important; }
.execution-ledger-edit-table th:nth-child(11),
.execution-ledger-edit-table td:nth-child(11) { width:84px!important; min-width:84px!important; max-width:84px!important; text-align:center!important; }
.ledger-krw-toggle { width:24px; height:24px; margin-left:3px; padding:0; border-radius:50%; font-weight:900; cursor:pointer; }
.ledger-krw-toggle.unconfirmed { border:1px solid #c73832; background:#fff0ef; color:#c73832; }
.ledger-krw-toggle.confirmed { border:1px solid #16834b; background:#e8f7ef; color:#16834b; }
.execution-laundry-summary-table input { width:100%; height:30px; padding:3px 6px; border:1px solid transparent; background:transparent; }
.execution-laundry-summary-table input:focus { border-color:var(--orange); background:#fff; outline:0; }
.execution-laundry-summary-table tr.dirty td { background:#fff3df; }
.execution-laundry-summary-table tfoot th { background:var(--navy); color:#fff; }
.execution-laundry-currency-totals { display:flex; flex-direction:column; align-items:flex-end; gap:2px; line-height:1.15; }
.execution-laundry-currency-totals span { font-size:10px; font-weight:600; }
.execution-laundry-currency-totals strong { margin-top:2px; font-size:13px; font-weight:800; }
.execution-facility-table thead th small { display:block; margin-top:2px; color:#69717a; font-size:9px; font-weight:500; white-space:normal; }
.execution-facility-cell { cursor:pointer; }
.execution-facility-cell.selected { box-shadow:inset 0 0 0 2px var(--orange); }
.execution-facility-cell-body { min-height:24px; color:#343a40; font-size:10px; text-align:center; }
.execution-facility-people { display:block; width:100%; min-height:28px; padding:2px 4px!important; border:0; background:transparent; color:#343a40; font-size:10px; line-height:1.3; text-align:center; }
.execution-facility-empty-cell { padding:0!important; text-align:center; }
.execution-facility-empty-cell button { width:100%; min-height:54px; padding:0!important; border:0; background:transparent; color:#a0a7af; font-size:18px; }
.execution-facility-empty-cell button:hover { background:#fff8e9; color:var(--orange); }
.execution-facility-participant-names { display:block; max-height:52px; overflow:auto; color:#606975; line-height:1.35; }
.execution-facility-cell footer { display:grid; grid-template-columns:minmax(0,1fr) 22px; align-items:center; gap:1px 4px; }
.execution-facility-cell footer > span { color:#68717b; font-size:9px; }
.execution-facility-cell footer > span,.execution-facility-cell footer > b { grid-column:1; overflow:hidden; text-overflow:ellipsis; text-align:left; }
.execution-facility-cell footer .facility-ledger-paid-toggle { grid-column:2; grid-row:1 / span 2; }
.facility-ledger-paid-toggle { width:22px; min-width:22px; height:22px; padding:0!important; border-radius:50%; font-size:11px; }
.facility-ledger-paid-toggle.paid { border-color:#74b78a; background:#e6f5eb; color:#176b35; }
.facility-ledger-paid-toggle.unpaid { border-color:#e2a39e; background:#fff0ef; color:#a12820; }
.execution-facility-editor { display:grid; grid-template-columns:140px minmax(220px,1fr) 150px 120px 90px 130px auto auto; align-items:end; gap:8px; margin-top:10px; padding:9px 10px; border:1px solid #cbd0d6; background:#f6f7f8; }
.execution-facility-editor[hidden] { display:none; }
.execution-facility-editor > strong { grid-column:1/-1; font-size:12px; }
.execution-facility-editor label { display:grid; gap:3px; margin:0; font-size:10px; }
.execution-facility-editor input:not([type="checkbox"]) { width:100%; height:30px; padding:3px 6px; }
.execution-facility-paid { display:flex!important; align-items:center; white-space:nowrap; }
@media(max-width:1000px){.execution-workspace{grid-template-columns:170px minmax(900px,1fr)}.execution-main{padding:14px}.execution-ledger-form{grid-template-columns:repeat(5,1fr)}.execution-kpis{grid-template-columns:repeat(2,1fr)}}
.execution-dashboard-date-control {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.execution-dashboard-date-control .execution-dashboard-date-text {
  width: 132px;
  min-width: 132px;
}

.execution-dashboard-total th { background:#f3f5f7; border-top:2px solid #0c1930; font-weight:800; }
.execution-account-dashboard tbody tr:hover td,
.execution-detail-dashboard tbody tr:hover td { background:#fff9e8!important; }
.execution-account-dashboard .execution-panel-head > small { display:none; }
.execution-account-dashboard table { width:100%; table-layout:fixed; }
.execution-account-dashboard th,
.execution-account-dashboard td { width:20%; }
.execution-account-dashboard th:last-child,
.execution-account-dashboard td:last-child { white-space:nowrap; }
.execution-account-dashboard td:last-child .execution-rate { width:calc(100% - 62px); max-width:110px; margin-right:5px; }
.execution-detail-dashboard .execution-merged-account { background:#f3f4f6; font-weight:800; text-align:center; vertical-align:middle; }
.execution-detail-dashboard .execution-new-subcategory > td:not(.execution-merged-account) { background:#fff0ef; color:#9f2820; }
.execution-detail-dashboard .execution-new-subcategory:hover > td:not(.execution-merged-account) { background:#ffe4e1!important; }
.execution-dashboard-new-item-guide { display:block; margin-top:3px; color:#a12820!important; font-size:10px; font-weight:700; }
.unified-date-control { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 28px; width:100%; min-width:0; border:1px solid var(--line); background:#fff; }
.unified-date-text { width:100%; min-width:0; height:100%; padding:0 6px; border:0!important; background:transparent; color:inherit; font:inherit; text-align:center; outline:0!important; }
.unified-date-calendar { width:28px; height:100%; padding:0!important; border:0; border-left:1px solid var(--line); background:transparent; color:var(--navy); font-size:11px; cursor:pointer; }
.unified-date-native { position:absolute!important; width:1px!important; height:1px!important; margin:0!important; padding:0!important; opacity:0!important; pointer-events:none!important; }
.execution-detail-dashboard .execution-account-subtotal > th { background:#fff2b8; color:#403714; font-weight:800; border-top:1px solid #d8bd4e; }
.execution-detail-dashboard .execution-account-subtotal:hover > th { background:#ffe993!important; }
.execution-budget-share { background-color:#fff!important; background-image:linear-gradient(90deg,rgba(111,174,222,.27) 0,var(--budget-share),transparent var(--budget-share),transparent 100%)!important; background-repeat:no-repeat!important; }
.execution-account-dashboard tbody tr:hover .execution-budget-share,
.execution-detail-dashboard tbody tr:hover .execution-budget-share { background-image:linear-gradient(rgba(255,249,232,.38),rgba(255,249,232,.38)),linear-gradient(90deg,rgba(111,174,222,.27) 0,var(--budget-share),transparent var(--budget-share),transparent 100%)!important; }
.execution-other-meal-total td { background:#fff3dc; border-top:2px solid #e8aa45; font-weight:800; }

.execution-dashboard-date-control .execution-dashboard-calendar {
  position: relative;
  width: 42px;
  min-width: 42px;
  padding-inline: 0;
}

.execution-dashboard-date-control .execution-dashboard-date-picker[hidden] {
  display: block;
  position: absolute;
  right: 0;
  top: 100%;
  width: 42px;
  height: 1px;
  padding: 0;
  border: 0;
  opacity: 0;
  pointer-events: none;
}
.execution-ledger-date-control { position:relative; display:flex; align-items:center; gap:3px; }
.execution-ledger-form .execution-ledger-date-text { min-width:0; flex:1; }
.execution-ledger-form .execution-ledger-calendar { width:38px; min-width:38px; padding:0; }
.execution-ledger-form .execution-ledger-date-picker[hidden] { display:block; position:absolute; right:0; top:100%; width:38px; height:1px; padding:0; opacity:0; pointer-events:none; }
.schedule-timezone-cell { min-width:205px; }
.schedule-timezone-cell > div { position:relative; display:grid; grid-template-columns:minmax(150px,1fr) auto; align-items:center; gap:2px 5px; }
.schedule-timezone-cell input { grid-column:1; height:30px; padding:4px 7px; font-size:12px; }
.schedule-timezone-cell small { grid-column:1; color:var(--muted); font-size:10px; }
.schedule-timezone-cell button { grid-column:2; grid-row:1 / span 2; border:0; background:transparent; color:var(--danger); padding:4px; cursor:pointer; }
.execution-dashboard-ledger-link { border:0; padding:0; background:transparent; color:inherit; font:inherit; font-weight:inherit; text-align:inherit; cursor:pointer; }
.execution-dashboard-ledger-link:hover { color:var(--orange); text-decoration:underline; }
.topbar {
  position:fixed!important;
  top:0;
  right:0;
  bottom:auto;
  left:0;
  width:100vw;
  max-width:100vw;
}

body { padding-top:64px; }
body.unified-table-active { padding-top:0; }

#workspaceView .step-footer {
  position:fixed!important;
  right:0!important;
  bottom:0!important;
  left:245px!important;
  width:calc(100vw - 245px)!important;
  max-width:calc(100vw - 245px)!important;
  margin-left:0;
  margin-right:0;
}

.workspace.unified-table-mode .step-footer,
.workspace.personal-detail-mode .step-footer,
.workspace.lodging-full-page-mode .step-footer,
.workspace.laundry-full-page-mode .step-footer {
  left:0!important;
  right:0!important;
  width:100vw!important;
  max-width:100vw!important;
}

@media (max-width:900px) {
  #workspaceView .step-footer {
    left:0!important;
    width:100vw!important;
    max-width:100vw!important;
  }
}

@media print {
  body { padding-top:0!important; }
  html,
  body { background:#fff!important; }
  body { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}
.execution-workspace.ledger-footer-active .execution-main { padding-bottom:82px; }
.execution-ledger-total-bar { position:fixed; right:0; bottom:0; left:210px; z-index:35; display:grid; grid-template-columns:1fr 1fr; gap:8px; min-height:58px; padding:6px 24px; border-top:1px solid #bfc5cc; background:rgba(245,245,242,.97); backdrop-filter:blur(6px); }
.execution-ledger-total-bar section { display:flex; align-items:center; justify-content:space-between; gap:12px; min-width:0; padding:5px 10px; border:1px solid #c9ced4; background:#fff; }
.execution-ledger-total-bar span { flex:0 0 auto; color:#68717b; font-size:10px; }
.execution-ledger-total-bar strong { overflow:hidden; color:var(--navy); font-size:13px; font-variant-numeric:tabular-nums; text-align:right; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:900px) { .execution-ledger-total-bar { left:0; } }
@media print { .execution-ledger-total-bar { display:none!important; } }
.execution-dashboard-comment { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:stretch; gap:8px; margin-top:28px; padding:12px 14px; border:1px solid #c8cdd3; background:#fff; }
.execution-dashboard-comment textarea { min-height:72px; resize:vertical; padding:8px 10px; line-height:1.45; }
.execution-dashboard-comment-print { grid-column:1/-1; min-height:38px; padding:10px 12px; border-top:1px solid #d8dce0; background:#fff; color:#111; font-size:13px; line-height:1.5; white-space:break-spaces; }
.execution-dashboard-comment-print h1 { font-size:20px; }
.execution-dashboard-comment-print h2 { font-size:17px; }
.execution-dashboard-comment-print h3 { font-size:15px; }
.execution-dashboard-comment-print h4 { font-size:14px; }
.execution-dashboard-comment-print h5 { font-size:13px; }
.execution-dashboard-comment-print h6 { font-size:12px; }
.execution-dashboard-comment-print h1,
.execution-dashboard-comment-print h2,
.execution-dashboard-comment-print h3,
.execution-dashboard-comment-print h4,
.execution-dashboard-comment-print h5,
.execution-dashboard-comment-print h6 { margin:0 0 7px; font-weight:800; line-height:1.25; }
.execution-dashboard-comment-print p,
.execution-dashboard-comment-print ul,
.execution-dashboard-comment-print ol,
.execution-dashboard-comment-print blockquote { margin:0 0 5px; }
.execution-dashboard-comment-print ul,
.execution-dashboard-comment-print ol { padding-left:20px; }
.execution-dashboard-comment-print li > ul,
.execution-dashboard-comment-print li > ol { margin:2px 0; padding-left:20px; }
.execution-dashboard-comment-print .markdown-task-item { list-style:none; }
.execution-dashboard-comment-print .markdown-task-item > input { width:auto; margin:0 4px 0 -18px; padding:0; vertical-align:middle; }
.execution-dashboard-comment-print blockquote { padding-left:9px; border-left:3px solid #999; color:#444; }
.execution-dashboard-comment-print hr { height:0; margin:10px 0; border:0; border-top:1px solid #0c1930; }
.execution-dashboard-comment-print a { color:#174f86; text-decoration:underline; }
.execution-dashboard-comment-print pre { margin:7px 0; padding:8px 10px; overflow:auto; border:1px solid #c8cdd3; background:#f5f6f7; white-space:pre-wrap; }
.execution-dashboard-comment-print code { padding:1px 3px; background:#f0f1f2; font-family:monospace; font-size:.92em; }
.execution-dashboard-comment-print pre code { padding:0; background:transparent; }
.execution-dashboard-comment-print .markdown-blank-line { height:1.5em; margin:0; }
.execution-dashboard-comment-print .markdown-table-wrap { width:100%; margin:5px 0 8px; overflow-x:auto; }
.execution-dashboard-comment-print table { width:100%; border-collapse:collapse; white-space:break-spaces; }
.execution-dashboard-comment-print th,
.execution-dashboard-comment-print td { padding:5px 7px; border:1px solid #9ba3ac; vertical-align:middle; }
.execution-dashboard-comment-print th { background:#eef0f2; font-weight:700; }
.execution-dashboard-comment button { align-self:stretch; padding:7px 14px; }
.execution-dashboard-print-summary { display:contents; }
.execution-dashboard-print-title { display:none; }
@media (max-width:900px) { .execution-dashboard-comment { grid-template-columns:1fr; } }
@media print {
  .execution-dashboard-print-summary { display:block; break-after:page; page-break-after:always; }
  .execution-dashboard-print-title { display:block; margin:0 0 12px; color:var(--navy); font-family:Eagles,Hanwha,sans-serif; font-size:30px; font-weight:400; line-height:1.1; }
  .execution-dashboard-print-summary .execution-kpis { gap:10px; margin-bottom:12px; }
  .execution-dashboard-print-summary .execution-kpis article { padding:14px 16px; }
  .execution-dashboard-print-summary .execution-kpis strong { font-size:20px; }
  .execution-dashboard-print-summary .execution-panel { margin-bottom:0; }
  .execution-dashboard-print-summary .execution-panel-head { padding:11px 13px; }
  .execution-dashboard-print-summary .execution-panel-head h2 { font-size:16px; }
  .execution-dashboard-print-summary .execution-table { font-size:11px; }
  .execution-dashboard-print-summary .execution-table th { padding:7px 5px; line-height:normal; }
  .execution-dashboard-print-summary .execution-table td { padding:5px; line-height:normal; }
  .execution-detail-dashboard { break-before:page; page-break-before:always; }
  .execution-dashboard-comment { display:block; padding:0; border:0; }
  .execution-dashboard-comment textarea,
  .execution-dashboard-comment button { display:none!important; }
  .execution-dashboard-comment-print { display:block; min-height:24px; padding:10px 12px; border:1px solid #0c1930; background:#fff; font-size:13px; line-height:1.5; color:#111; }
  .execution-dashboard-comment-print h1,
  .execution-dashboard-comment-print h2,
  .execution-dashboard-comment-print h3,
  .execution-dashboard-comment-print p,
  .execution-dashboard-comment-print ul,
  .execution-dashboard-comment-print ol,
  .execution-dashboard-comment-print blockquote { margin:0 0 5px; }
  .execution-dashboard-comment-print ul,
  .execution-dashboard-comment-print ol { padding-left:20px; }
  .execution-dashboard-comment-print blockquote { padding-left:9px; border-left:3px solid #999; color:#444; }
}

/* 집행 원장: 화면 폭과 무관하게 유지하는 고정 열 비율 */
.execution-ledger-edit-table { width:100%!important; min-width:100%!important; max-width:100%!important; table-layout:fixed!important; }
.execution-ledger-edit-table th,
.execution-ledger-edit-table td { box-sizing:border-box; min-width:0!important; max-width:none!important; }
.execution-ledger-edit-table th:nth-child(1),.execution-ledger-edit-table td:nth-child(1),
.execution-ledger-edit-table th:nth-child(12),.execution-ledger-edit-table td:nth-child(12),
.execution-ledger-edit-table th:nth-child(13),.execution-ledger-edit-table td:nth-child(13) { width:3.571428571%!important; }
.execution-ledger-edit-table th:nth-child(2),.execution-ledger-edit-table td:nth-child(2) { width:10.71428571%!important; }
.execution-ledger-edit-table th:nth-child(3),.execution-ledger-edit-table td:nth-child(3),
.execution-ledger-edit-table th:nth-child(4),.execution-ledger-edit-table td:nth-child(4),
.execution-ledger-edit-table th:nth-child(5),.execution-ledger-edit-table td:nth-child(5),
.execution-ledger-edit-table th:nth-child(7),.execution-ledger-edit-table td:nth-child(7),
.execution-ledger-edit-table th:nth-child(8),.execution-ledger-edit-table td:nth-child(8),
.execution-ledger-edit-table th:nth-child(9),.execution-ledger-edit-table td:nth-child(9) { width:7.142857143%!important; }
.execution-ledger-edit-table th:nth-child(6),.execution-ledger-edit-table td:nth-child(6) { width:25%!important; }
.execution-ledger-edit-table th:nth-child(10),.execution-ledger-edit-table td:nth-child(10),
.execution-ledger-edit-table th:nth-child(11),.execution-ledger-edit-table td:nth-child(11) { width:5.357142857%!important; }
.execution-ledger-edit-table td input:not([type="checkbox"]) { width:100%!important; min-width:0!important; max-width:100%!important; }
.execution-ledger-edit-table .save-ledger-row,
.execution-ledger-edit-table .delete-ledger-row { width:100%!important; min-width:0!important; padding-right:0!important; padding-left:0!important; font-size:9px; }

/* 편성 진행비용 입력: 사진 기준 고정 비율 */
.workspace.budget-ledger-workspace .budget-expense-ledger-form {
  grid-template-columns:7.407407407% 7.407407407% 11.11111111% 11.11111111% 11.11111111% 16.66666667% 9.259259259% 9.259259259% 9.259259259% 7.407407407%!important;
  gap:0!important;
}
.workspace.budget-ledger-workspace .budget-expense-ledger-form > label,
.workspace.budget-ledger-workspace .budget-expense-ledger-form > button { min-width:0!important; max-width:100%!important; }
.workspace.budget-ledger-workspace .budget-expense-ledger-form .save-budget-expense { width:100%!important; min-width:0!important; padding-right:2px!important; padding-left:2px!important; overflow:hidden; font-size:10px; white-space:nowrap; }

/* Figma 1:2 예산 비교표 */
.figma-comparison-report { width:1080px; max-width:100%; margin:18px auto 0; color:#0a182c; }
.figma-comparison-grid { display:grid; justify-content:center; align-items:start; grid-template-columns:300px 88px 300px 88px 300px; width:max-content; margin:0 auto; background:#fff; }
.figma-comparison-grid.count-2 { grid-template-columns:300px 88px 300px; }
.figma-camp-column { display:flex; flex-direction:column; gap:50px; width:300px; padding:17px 2px; box-sizing:border-box; background:#fff; }
.figma-camp-column>header { height:172px; padding:10px; text-align:center; box-sizing:border-box; }
.figma-camp-column>header small { display:inline-block; margin-bottom:8px; color:#8190a3; font-size:10px; font-weight:800; }
.figma-camp-column>header h2 { display:flex; justify-content:center; align-items:center; min-height:59px; margin:0; color:#0a182c; font-family:'Hanwha EaglesTTF','Hanwha_EaglesTTF',sans-serif; font-size:28px; font-weight:400; line-height:1.05; }
.figma-camp-column>header p { margin:48px 0 0; font-size:13px; white-space:nowrap; }
.figma-camp-summary { height:174px; padding:5px 31px; border-radius:25px; background:rgba(10,43,89,.06); box-sizing:border-box; text-align:center; }
.figma-camp-summary h3 { margin:0 0 7px; color:#111; font-size:15px; font-weight:500; }
.figma-camp-summary div { display:grid; grid-template-columns:1fr 78px; align-items:center; min-height:36px; }
.figma-camp-summary div span { font-family:'Hanwha EaglesTTF','Hanwha_EaglesTTF',sans-serif; font-size:20px; }.figma-camp-summary div b { text-align:right; font-size:24px; font-weight:400; opacity:.3; }
.figma-camp-summary>small { display:block; margin-top:3px; font-size:11px; opacity:.85; }
.figma-cost-section { display:flex; flex-direction:column; gap:5px; width:297px; min-height:73px; }
.figma-cost-total { height:73px; padding:9px 19px 8px 22px; border-radius:19px; background:#f0f2f5; box-sizing:border-box; }
.figma-cost-total>strong { float:left; width:132px; font-family:'Hanwha EaglesTTF','Hanwha_EaglesTTF',sans-serif; font-size:24px; font-weight:400; line-height:29px; }
.figma-cost-total>span { display:block; text-align:right; font-family:'Hanwha EaglesTTF','Hanwha_EaglesTTF',sans-serif; font-size:28px; line-height:29px; white-space:nowrap; }
.figma-cost-total>span small { display:block; height:20px; font-family:inherit; font-size:13px; font-weight:300; line-height:20px; }
.figma-cost-total>span::after { content:''; display:block; width:153px; margin-left:auto; border-bottom:1px solid #0a182c; }
.figma-cost-detail { display:grid; grid-template-columns:147px 1fr; align-items:center; min-height:18px; padding:0 27px 0 37px; box-sizing:border-box; font-size:14px; }.figma-cost-detail span { text-align:center; }.figma-cost-detail b { text-align:right; font-weight:400; white-space:nowrap; }
.figma-player-cost { display:flex; justify-content:space-between; padding:16px 22px; border-top:1px solid #0a182c; font-size:14px; }.figma-player-cost b { font-size:18px; }
.figma-delta-column { display:flex; flex-direction:column; gap:50px; width:88px; padding-top:17px; text-align:center; box-sizing:border-box; }
.figma-delta-column section { display:flex; flex-direction:column; justify-content:flex-end; box-sizing:border-box; }.figma-delta-column span { display:block; min-height:18px; font-size:16px; font-weight:800; line-height:18px; }.figma-delta-column .increase { color:#f01422; }.figma-delta-column .decrease { color:#1265db; }
.figma-delta-column .delta-summary { height:396px; gap:14px; padding-bottom:9px; }.figma-delta-column .delta-lodging { min-height:119px; gap:5px; }.figma-delta-column .delta-meal { min-height:170px; gap:3px; }.figma-delta-column .delta-laundry { min-height:96px; gap:3px; }.figma-delta-column .delta-transport { min-height:110px; gap:3px; }.figma-delta-column .delta-facilities,.figma-delta-column .delta-air,.figma-delta-column .delta-freight,.figma-delta-column .delta-league,.figma-delta-column .delta-supplies { min-height:73px; }.figma-delta-column .delta-other { min-height:160px; gap:2px; }
.figma-comparison-notes { display:grid; grid-template-columns:1fr 90px; min-height:222px; margin:38px 25px 0; border:1px solid #0a182c; background:#fff; }.figma-comparison-notes textarea { width:100%; min-height:220px; padding:18px; border:0; resize:vertical; box-sizing:border-box; font:14px/1.6 inherit; outline:none; }.figma-comparison-notes button { border:0; border-left:1px solid #0a182c; background:#fff; color:#111; font-size:16px; cursor:pointer; }
@media(max-width:1120px){.figma-comparison-report { overflow-x:auto; }.figma-comparison-grid { margin-left:0; }}
@media print { .comparison-page { padding:0!important; background:#fff!important; }.comparison-header,.comparison-report-actions { display:none!important; }.figma-comparison-report { width:1080px; max-width:none; margin:0; overflow:visible; }.figma-comparison-notes { break-inside:avoid; } }

/* 비교표는 Figma의 Hanwha Eagles / Hanwha Gothic 조합을 실제 번들 폰트에 연결한다. */
@font-face { font-family:HanwhaLight; src:url('/fonts/07HANWHAGOTHICEL.TTF'); font-weight:300; font-display:swap; }
@media print {
  .workspace.budget-basics-mode #stepContent,
  .workspace.budget-basics-mode #stepContent * {
    font-family:HanwhaLight,Arial,sans-serif!important;
    font-weight:300;
  }
}
.figma-comparison-report { font-family:Hanwha,Arial,sans-serif; }
.figma-camp-column>header h2,
.figma-camp-summary div span,
.figma-cost-total>strong,
.figma-cost-total>span { font-family:Eagles,Hanwha,Arial,sans-serif; }
.figma-camp-column>header p,
.figma-camp-summary>small,
.figma-cost-detail { font-family:HanwhaLight,Hanwha,Arial,sans-serif; }
.figma-delta-column span { font-family:Hanwha,Arial,sans-serif; font-weight:700; }

/* 캠프 열과 증감률 열이 동일한 행 높이를 공유하도록 고정한다. */
.figma-camp-column>.figma-cost-section:nth-of-type(2),.figma-delta-column .delta-lodging { height:119px; min-height:119px; }
.figma-camp-column>.figma-cost-section:nth-of-type(3),.figma-delta-column .delta-meal { height:170px; min-height:170px; }
.figma-camp-column>.figma-cost-section:nth-of-type(4),.figma-delta-column .delta-laundry { height:96px; min-height:96px; }
.figma-camp-column>.figma-cost-section:nth-of-type(5),.figma-delta-column .delta-transport { height:110px; min-height:110px; }
.figma-camp-column>.figma-cost-section:nth-of-type(6),
.figma-camp-column>.figma-cost-section:nth-of-type(7),
.figma-camp-column>.figma-cost-section:nth-of-type(8),
.figma-camp-column>.figma-cost-section:nth-of-type(9),
.figma-camp-column>.figma-cost-section:nth-of-type(10),
.figma-delta-column .delta-facilities,.figma-delta-column .delta-air,.figma-delta-column .delta-freight,.figma-delta-column .delta-league,.figma-delta-column .delta-supplies { height:73px; min-height:73px; }
.figma-camp-column>.figma-cost-section:nth-of-type(11),.figma-delta-column .delta-other { height:160px; min-height:160px; }
.figma-cost-section { overflow:hidden; }

/* 각 퍼센트를 해당 카드의 총액/세부행과 같은 기준선에 배치한다. */
.figma-delta-column section:not(.delta-summary) { display:grid; align-items:center; justify-content:stretch; gap:5px; }
.figma-delta-column section:not(.delta-summary)>span:first-child { align-self:end; height:23px; line-height:23px; }
.figma-delta-column .delta-lodging { grid-template-rows:73px repeat(2,18px); }
.figma-delta-column .delta-meal { grid-template-rows:73px repeat(4,18px); }
.figma-delta-column .delta-laundry { grid-template-rows:73px 18px; }
.figma-delta-column .delta-transport { grid-template-rows:73px repeat(2,18px); }
.figma-delta-column .delta-facilities,.figma-delta-column .delta-air,.figma-delta-column .delta-freight,.figma-delta-column .delta-league,.figma-delta-column .delta-supplies { grid-template-rows:73px; }
.figma-delta-column .delta-other { grid-template-rows:73px repeat(4,18px); }
.figma-delta-column .delta-summary { display:grid; grid-template-rows:247px repeat(3,36px); height:396px; padding:0; gap:0; }
.figma-delta-column .delta-summary>span:nth-child(1) { grid-row:2; }.figma-delta-column .delta-summary>span:nth-child(2) { grid-row:3; }.figma-delta-column .delta-summary>span:nth-child(3) { grid-row:4; }
.figma-delta-column .delta-summary>span { display:flex; align-items:center; justify-content:center; min-height:36px; line-height:1; }

/* Figma 16:559 프린트아웃 레이아웃 */
.figma-comparison-report { width:1636px; }
.figma-comparison-grid { grid-template-columns:330px 229px 330px 229px 330px; align-items:start; gap:0; padding:50px; box-sizing:border-box; }
.figma-comparison-grid.count-2 { grid-template-columns:330px 229px 330px; }
.figma-camp-column,.figma-delta-column { display:flex; flex-direction:column; gap:20px; height:auto; min-height:2250px; padding:0; box-sizing:border-box; background:#fff; }
.figma-camp-column { width:330px; }
.figma-delta-column { width:229px; text-align:center; }
.figma-camp-column>header,.figma-delta-column>header { height:246px; min-height:246px; padding:15px; border-radius:16px; background:rgba(0,252,118,.06); box-sizing:border-box; text-align:center; }
.figma-delta-column>header { height:247px; min-height:247px; background:#f0f2f5; }
.figma-camp-column>header h2,.figma-delta-column>header h2 { display:flex; align-items:center; justify-content:center; height:50px; min-height:50px; margin:0; font:400 19px/1.05 Eagles,Hanwha,sans-serif; }
.figma-delta-column>header h2 { font-size:22px; }
.figma-camp-column>header>div { display:flex; align-items:center; justify-content:center; gap:18px; height:27px; margin-top:9px; }
.figma-camp-column>header>div p { width:179px; margin:0; color:#19bd00; font:300 9px/1 HanwhaLight,Hanwha,sans-serif; white-space:nowrap; }
.figma-camp-column>header>div small { display:grid; place-items:center; width:66px; height:18px; border:1px solid #19bd00; border-radius:6px; color:#19bd00; font:400 13px/1 Eagles,Hanwha,sans-serif; }
.figma-camp-column>header h3,.figma-delta-column>header h3 { height:14px; margin:9px 0 7px; font:300 9px/14px HanwhaLight,Hanwha,sans-serif; white-space:nowrap; }
.figma-camp-column>header .figma-camp-summary { height:69px; padding:0 25px; border-radius:0; background:none; }
.figma-camp-column>header .figma-camp-summary div { grid-template-columns:124px 55px; justify-content:center; min-height:23px; font-family:Eagles,Hanwha,sans-serif; }
.figma-camp-column>header .figma-camp-summary span,.figma-camp-column>header .figma-camp-summary b { font:400 20px/23px Eagles,Hanwha,sans-serif; opacity:1; }
.figma-camp-column>header .figma-camp-summary b { text-align:right; }.figma-camp-column>header .figma-camp-summary div:last-child { color:#b9b9b9; }
.figma-camp-column>header em { display:block; margin-top:8px; color:#006a88; font:normal 11px/17px Hanwha,Arial,sans-serif; }
.figma-delta-column>header p { margin:9px 0; font:300 11px/18px HanwhaLight,Hanwha,sans-serif; }.figma-delta-column>header>span { display:block; min-height:23px; font:700 13px/23px Hanwha,Arial,sans-serif; }.figma-delta-column>header>small { display:block; margin-top:5px; color:#006a88; font-size:10px; }
.figma-account-table { width:310px; height:317px; margin:0 10px; border-collapse:collapse; table-layout:fixed; color:#000; font:400 12px/1.3 Hanwha,Arial,sans-serif; }
.figma-account-table th,.figma-account-table td { height:20px; padding:0 7px; border:1px solid rgba(0,0,0,.3); overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.figma-account-table thead th { height:16px; background:rgba(0,0,0,.06); font:400 14px/1 Eagles,Hanwha,sans-serif; text-align:center; }.figma-account-table td:first-child { text-align:center; }.figma-account-table td:last-child { text-align:right; }.figma-account-table .total { font-weight:700; }
.figma-account-delta { width:209px; margin:0 10px; font-size:10px; }.figma-account-delta td:first-child,.figma-account-delta td:last-child { text-align:right; }.figma-account-delta .increase { color:#f01422; }.figma-account-delta .decrease { color:#1265db; }
.figma-camp-column>.figma-cost-section,.figma-delta-column>section { width:100%; min-height:0; padding:10px 22px; border:10px solid #fff; border-radius:24px; background:rgba(0,252,118,.06); box-sizing:border-box; overflow:hidden; }
.figma-delta-column>section { background:#f0f2f5; }
.figma-camp-column>.figma-cost-section:nth-of-type(1),.figma-delta-column .delta-lodging { height:170px; min-height:170px; }
.figma-camp-column>.figma-cost-section:nth-of-type(2),.figma-delta-column .delta-meal { height:217px; min-height:217px; }
.figma-camp-column>.figma-cost-section:nth-of-type(3),.figma-delta-column .delta-laundry { height:172px; min-height:172px; }
.figma-camp-column>.figma-cost-section:nth-of-type(4),.figma-delta-column .delta-transport { height:172px; min-height:172px; }
.figma-camp-column>.figma-cost-section:nth-of-type(5),.figma-camp-column>.figma-cost-section:nth-of-type(6),.figma-camp-column>.figma-cost-section:nth-of-type(7),.figma-camp-column>.figma-cost-section:nth-of-type(8),.figma-camp-column>.figma-cost-section:nth-of-type(9),.figma-delta-column .delta-facilities,.figma-delta-column .delta-air,.figma-delta-column .delta-freight,.figma-delta-column .delta-league,.figma-delta-column .delta-supplies { height:84px; min-height:84px; }
.figma-camp-column>.figma-cost-section:nth-of-type(10),.figma-delta-column .delta-other { height:208px; min-height:208px; }
.figma-cost-total { height:57px; padding:4px 9px; border-radius:9px; background:none; }.figma-cost-total>strong { width:127px; font:400 16px/23px Eagles,Hanwha,sans-serif; }.figma-cost-total>span { font:400 30px/23px Eagles,Hanwha,sans-serif; }.figma-cost-total>span small { height:23px; font-size:10px; line-height:23px; }.figma-cost-total>span::after { display:none; }
.figma-cost-detail { grid-template-columns:134px 1fr; min-height:26px; padding:0 13px 0 10px; font:400 20px/26px Eagles,Hanwha,sans-serif; }.figma-cost-detail b { font-weight:400; }.figma-cost-detail b,.figma-cost-detail b::first-line { font-size:20px; }
.figma-camp-column>.figma-cost-section:nth-of-type(1) .figma-cost-detail,.figma-camp-column>.figma-cost-section:nth-of-type(3) .figma-cost-detail,.figma-camp-column>.figma-cost-section:nth-of-type(4) .figma-cost-detail { min-height:32px; line-height:32px; }
.figma-delta-column>section { display:flex!important; flex-direction:column; align-items:stretch; justify-content:flex-start; gap:0!important; padding:67px 24px 10px; }.figma-delta-column>section>span { display:block; min-height:26px; font:700 16px/26px Hanwha,Arial,sans-serif; text-align:right; }.figma-delta-column>section>span:first-child { position:absolute; align-self:auto; height:auto; margin-top:-52px; }.figma-delta-column .delta-lodging>span:not(:first-child),.figma-delta-column .delta-laundry>span:not(:first-child),.figma-delta-column .delta-transport>span:not(:first-child) { min-height:32px; line-height:32px; }
.figma-player-cost { position:relative; display:grid; grid-template-columns:127px 1fr; align-items:start; height:87px; padding:7px 27px; border:3px solid #831bf2; border-radius:24px; box-sizing:border-box; font:400 16px/23px Eagles,Hanwha,sans-serif; }.figma-player-cost>b { text-align:right; font-size:26px; white-space:nowrap; }.figma-player-cost>small { position:absolute; right:15px; bottom:3px; left:15px; color:#006a88; font:400 9px/17px Hanwha,Arial,sans-serif; text-align:center; white-space:nowrap; }
.figma-delta-column>.figma-player-cost { width:100%; grid-template-columns:1fr; background:#fff; }.figma-delta-column>.figma-player-cost span { font-size:12px; }.figma-delta-column>.figma-player-cost b { color:#f01422; }
.figma-comparison-notes { width:1536px; margin:14px 50px 0; }
@media(max-width:1680px){.figma-comparison-report{max-width:none;overflow-x:auto}.figma-comparison-grid{margin-left:0}}
@media print{.figma-comparison-report{width:1636px}.figma-comparison-grid{padding:50px}.figma-comparison-notes{width:1536px;margin-left:50px}}

/* 비교표 전용 실제 폰트 및 공통 행 그리드 */
@font-face { font-family:ComparisonEagles; src:url('/fonts/HanwhaEagles-Regular.ttf') format('truetype'); font-weight:400; font-style:normal; font-display:swap; }
.figma-comparison-report,.figma-comparison-report * { font-family:ComparisonEagles,Hanwha,Arial,sans-serif; }
.figma-camp-column,.figma-delta-column {
  display:grid;
  grid-template-rows:246px 317px 170px 217px 172px 172px repeat(5,84px) 208px 87px;
  grid-auto-flow:row;
  row-gap:20px;
  align-content:start;
  min-height:2249px;
}
.figma-camp-column>header,.figma-delta-column>header,
.figma-camp-column>.figma-account-table,.figma-delta-column>.figma-account-table,
.figma-camp-column>.figma-cost-section,.figma-delta-column>section,
.figma-camp-column>.figma-player-cost,.figma-delta-column>.figma-player-cost { height:100%!important; min-height:0!important; margin-top:0; margin-bottom:0; }

/* 편성=주황, 집행=녹색 */
.figma-camp-column.mode-budget>header { background:rgba(252,78,0,.08); }
.figma-camp-column.mode-budget>header>div p { color:#fc4e00; }
.figma-camp-column.mode-budget>header>div small { border-color:#fc4e00; color:#fc4e00; }
.figma-camp-column.mode-execution>header { background:rgba(0,252,118,.06); }
.figma-camp-column.mode-execution>header>div p { color:#19bd00; }
.figma-camp-column.mode-execution>header>div small { border-color:#19bd00; color:#19bd00; }

/* 비교 페이지는 브라우저 가로 영역 전체를 사용한다. */
#comparisonView.comparison-page { width:100%; max-width:none; margin:0; padding:16px 12px 48px; }
#comparisonView .comparison-shell { width:100%; max-width:none; margin:0; }
#comparisonView #comparisonContent { width:100%; }
.figma-comparison-report { width:100%; max-width:none; overflow:visible; }
.figma-comparison-grid { margin:0 auto; }

/* 비교 카드와 증감 영역은 Eagles, 계정 표는 Hanwha Gothic. */
.figma-comparison-report,.figma-comparison-report * { font-family:ComparisonEagles,Eagles,sans-serif; }
.figma-account-table,.figma-account-table * { font-family:Hanwha,Arial,sans-serif; }

/* Figma 서머리의 상대 크기를 유지하면서 전체 글자만 1.3배 확대한다. */
.figma-camp-column>header h2 { font-size:24.7px; }
.figma-camp-column>header>div p { font-size:11.7px; }
.figma-camp-column>header>div small { font-size:16.9px; }
.figma-camp-column>header h3 { font-size:11.7px; }
.figma-camp-column>header .figma-camp-summary span,
.figma-camp-column>header .figma-camp-summary b { font-size:26px; }
.figma-camp-column>header em { font-size:14.3px; }
.figma-delta-column>header h2 { font-size:28.6px; }
.figma-delta-column>header p { font-size:14.3px; }
.figma-delta-column>header h3 { font-size:11.7px; }
.figma-delta-column>header>span { font-size:16.9px; }
.figma-delta-column>header>small { font-size:13px; }

/* 서머리 양쪽을 동일한 행 구조로 맞춰 겹침과 기준선 차이를 제거한다. */
.figma-camp-column>header,.figma-delta-column>header {
  display:grid;
  grid-template-rows:50px 27px 14px 69px 17px;
  row-gap:9px;
  align-content:start;
  overflow:hidden;
}
.figma-camp-column>header h2,.figma-delta-column>header h2,
.figma-camp-column>header>div,.figma-delta-column>header>p,
.figma-camp-column>header h3,.figma-delta-column>header h3,
.figma-camp-column>header .figma-camp-summary,.figma-delta-summary,
.figma-camp-column>header em,.figma-delta-column>header>small { width:100%; height:100%; min-height:0; margin:0; box-sizing:border-box; }
.figma-camp-column>header .figma-camp-summary,.figma-delta-summary { display:grid; grid-template-rows:repeat(3,23px); align-content:start; }
.figma-delta-summary>span { display:flex; align-items:center; justify-content:center; height:23px; font-size:16.9px; line-height:23px; white-space:nowrap; }
.figma-camp-column>header .figma-camp-summary span,
.figma-camp-column>header .figma-camp-summary b { font-size:23px; line-height:23px; white-space:nowrap; }
.figma-camp-column>header em,.figma-delta-column>header>small { display:flex; align-items:center; justify-content:center; line-height:17px; white-space:nowrap; }

/* 비교 열은 한화고딕, 수치와 금액은 오른쪽 정렬. */
.figma-delta-column,.figma-delta-column * { font-family:Hanwha,Arial,sans-serif!important; }
.figma-delta-column>section>span,
.figma-account-delta th,.figma-account-delta td,
.figma-delta-column>.figma-player-cost b { text-align:right!important; }
.figma-delta-column>section>span { width:100%; padding-right:7px; box-sizing:border-box; white-space:nowrap; }

/* 평균 환율: 서머리와 계정별 표 사이의 공통 행 */
.figma-camp-column,.figma-delta-column {
  grid-template-rows:246px 60px 317px 170px 217px 172px 172px repeat(5,84px) 208px 87px;
  min-height:2329px;
}
.figma-rate-summary {
  width:calc(100% - 20px);
  height:60px;
  min-height:60px;
  margin:0 10px;
  padding:8px 14px;
  border-radius:12px;
  background:rgba(10,43,89,.05);
  display:grid;
  grid-template-columns:80px 1fr;
  align-items:center;
  box-sizing:border-box;
  overflow:hidden;
}
.mode-budget>.figma-rate-summary { background:rgba(252,78,0,.07); }
.mode-execution>.figma-rate-summary { background:rgba(0,252,118,.06); }
.figma-rate-summary>strong { font:400 14px/1 ComparisonEagles,Eagles,sans-serif; }
.figma-rate-summary>div { display:flex; flex-direction:column; align-items:flex-end; justify-content:center; gap:2px; min-width:0; }
.figma-rate-summary>div span { max-width:100%; font:400 11px/1.25 Hanwha,Arial,sans-serif; text-align:right; white-space:nowrap; }
.figma-delta-column>.figma-rate-summary { font-family:Hanwha,Arial,sans-serif!important; background:#f0f2f5; }
.figma-rate-delta>strong { font-family:Hanwha,Arial,sans-serif!important; }
.figma-rate-delta .increase { color:#f01422; }
.figma-rate-delta .decrease { color:#1265db; }

/* 예비비 행까지 계정표 마지막 줄이 잘리지 않도록 한 행을 확보한다. */
.figma-camp-column,.figma-delta-column {
  grid-template-rows:246px 60px 337px 170px 217px 172px 172px repeat(5,84px) 208px 87px;
  min-height:2349px;
}
.figma-account-table { height:337px; }

/* 기타비용의 예비비는 금액이 0이어도 다섯 번째 세부 행으로 항상 노출한다. */
.figma-camp-column,.figma-delta-column {
  grid-template-rows:246px 60px 337px 170px 217px 172px 172px repeat(5,84px) 234px 87px;
  min-height:2375px;
}
.figma-camp-column>.figma-cost-section:nth-of-type(10),
.figma-delta-column .delta-other {
  height:234px;
  min-height:234px;
}

/* Figma 5D3h27F1 / 16:559: 첫 열 429px, 비교 열 553px 공통 기준선 */
.figma-comparison-report { width:100%; min-width:0; }
.figma-comparison-grid {
  display:grid;
  grid-template-columns:429px repeat(2,553px);
  gap:21px;
  width:max-content;
  min-width:100%;
  margin:0;
  padding:50px 58px 49px 50px;
  align-items:start;
  box-sizing:border-box;
}
.figma-comparison-grid.count-2 { grid-template-columns:429px 553px; }
.figma-camp-column,
.figma-camp-column.with-comparison {
  display:grid;
  grid-template-rows:343px 508px 170px 226px 160px 131px 80px 64px 72px 71px 67px 227px 94px;
  grid-auto-flow:row;
  row-gap:8px;
  width:553px;
  min-height:0;
  padding:0;
  background:#fff;
  box-sizing:border-box;
}
.figma-camp-column.base-comparison { width:429px; }
.figma-camp-column>header {
  display:grid;
  grid-template-rows:50px 35px 20px 114px 46px;
  row-gap:9px;
  width:100%;
  height:343px!important;
  min-height:343px!important;
  margin:0;
  padding:15px;
  border-radius:0;
  box-sizing:border-box;
  overflow:hidden;
}
.figma-camp-column>header h2,
.figma-camp-column>header .figma-camp-period,
.figma-camp-column>header h3,
.figma-camp-column>header .figma-camp-summary,
.figma-camp-column>header .figma-rate-summary { width:100%; height:100%; min-height:0; margin:0; box-sizing:border-box; }
.figma-camp-column>header h2 { justify-content:center; font-size:25px; line-height:50px; white-space:nowrap; }
.figma-camp-column>header .figma-camp-period { display:grid; grid-template-columns:minmax(0,1fr) 66px; gap:3px; align-items:center; }
.figma-camp-column>header .figma-camp-period p { width:auto; font-size:12px; text-align:center; }
.figma-camp-column>header .figma-camp-period small { width:66px; height:35px; font-size:17px; }
.figma-camp-column>header h3 { font-size:12px; line-height:20px; }
.figma-camp-column>header em { display:none; }
.figma-camp-column>header .figma-camp-summary { display:grid; grid-template-rows:repeat(3,38px); padding:0 55px; align-content:start; }
.figma-camp-column>header .figma-camp-summary div { display:grid; grid-template-columns:minmax(155px,1fr) minmax(90px,auto); min-height:38px; align-items:center; }
.figma-camp-column>header .figma-camp-summary span,
.figma-camp-column>header .figma-camp-summary b { font-size:25px; line-height:38px; }
.figma-camp-column>header .figma-camp-summary b { text-align:right; }
.figma-camp-column>header .figma-camp-summary i { font:400 15px/1 Hanwha,Arial,sans-serif; white-space:nowrap; }
.figma-camp-column>header .figma-rate-summary {
  display:grid;
  grid-template-columns:1fr 1fr;
  padding:0;
  border-radius:0;
  background:transparent;
  overflow:visible;
}
.figma-camp-column>header .figma-rate-summary>strong { display:flex; align-items:center; justify-content:center; font-size:21px; }
.figma-camp-column>header .figma-rate-summary>div { align-items:center; }
.figma-camp-column>header .figma-rate-summary>div span { font-size:13px; }
.figma-rate-summary i,.figma-cost-total i,.figma-player-cost i { font-style:normal; }
.figma-camp-column>.figma-account-table {
  width:410px;
  height:508px!important;
  min-height:508px!important;
  margin:0 auto;
  table-layout:fixed;
}
.figma-account-table th,.figma-account-table td { height:auto; padding:0 9px; font-size:13px; }
.figma-account-table thead th { height:auto; font-size:15px; }
.figma-camp-column>.figma-account-table.with-change-column { width:533px; }
.figma-account-table.with-change-column th:first-child { width:32%; }
.figma-account-table.with-change-column th:nth-child(2) { width:34%; }
.figma-account-table.with-change-column th:nth-child(3) { width:34%; }
.figma-account-table .account-change { text-align:right!important; white-space:nowrap; }
.figma-account-table .account-change.increase { color:#f01422; }
.figma-account-table .account-change.decrease { color:#1265db; }
/* 비교표의 모든 증감 요소는 동일한 색상 규칙을 사용한다. */
.figma-comparison-report .increase { color:#f01422!important; }
.figma-comparison-report .decrease { color:#1265db!important; }

/* 편성=주황, 집행=녹색: 서머리부터 개별 계정 카드까지 같은 테마를 사용한다. */
.figma-camp-column.mode-budget>header,
.figma-camp-column.mode-budget>.figma-cost-section,
.figma-camp-column.mode-budget>.figma-player-cost {
  background:rgba(252,78,0,.08);
}
.figma-camp-column.mode-budget>header .figma-camp-period p { color:#fc4e00; }
.figma-camp-column.mode-budget>header .figma-camp-period small { border-color:#fc4e00; color:#fc4e00; }
.figma-camp-column.mode-execution>header,
.figma-camp-column.mode-execution>.figma-cost-section,
.figma-camp-column.mode-execution>.figma-player-cost {
  background:rgba(0,252,118,.06);
}
.figma-camp-column.mode-execution>header .figma-camp-period p { color:#19bd00; }
.figma-camp-column.mode-execution>header .figma-camp-period small { border-color:#19bd00; color:#19bd00; }

@media print {
  @page { margin:8mm; }
  #comparisonView { width:auto!important; max-width:none!important; padding:0!important; }
  #comparisonView .comparison-shell,
  #comparisonView #comparisonContent,
  .figma-comparison-report { width:auto!important; max-width:none!important; overflow:visible!important; }
  .figma-comparison-report {
    zoom:.42;
  }
  .figma-comparison-grid {
    grid-template-columns:429px 553px 553px!important;
    width:1685px!important;
    min-width:1685px!important;
    margin:0!important;
    padding:50px 58px 49px 50px!important;
    gap:21px!important;
  }
  .figma-comparison-grid.count-2 {
    grid-template-columns:429px 553px!important;
    width:1111px!important;
    min-width:1111px!important;
  }
}
@media print and (orientation:landscape) {
  .figma-comparison-report { zoom:.58; }
}
@media print and (orientation:portrait) {
  .figma-comparison-report { zoom:.42; }
}

/* 예산 비교 인쇄는 비교표와 비용 박스만 용지 폭에 맞춰 출력한다. */
@media print {
  body:has(#comparisonView:not(.hidden))>.topbar,
  #comparisonView .comparison-header,
  #comparisonView .comparison-report-actions,
  #comparisonView .figma-comparison-notes { display:none!important; }
  #comparisonView,
  #comparisonView .comparison-shell,
  #comparisonView #comparisonContent,
  #comparisonView .figma-comparison-report { margin:0!important; padding:0!important; border:0!important; background:#fff!important; }
  #comparisonView .figma-comparison-grid {
    width:1577px!important;
    min-width:1577px!important;
    margin:0!important;
    padding:0!important;
  }
  #comparisonView .figma-comparison-grid.count-2 {
    width:1003px!important;
    min-width:1003px!important;
  }
}
@media print and (orientation:portrait) {
  #comparisonView .figma-comparison-report { zoom:.46; }
  #comparisonView #comparisonContent:has(.count-2) .figma-comparison-report { zoom:.72; }
}
@media print and (orientation:landscape) {
  #comparisonView .figma-comparison-report { zoom:.66; }
  #comparisonView #comparisonContent:has(.count-2) .figma-comparison-report { zoom:1; }
}
.figma-camp-column>.figma-cost-section {
  width:100%;
  height:100%!important;
  min-height:0!important;
  margin:0;
  padding:10px 22px;
  border:0;
  border-radius:0;
  box-sizing:border-box;
  overflow:hidden;
}
.figma-camp-column>.figma-cost-section:nth-of-type(1) { height:170px!important; }
.figma-camp-column>.figma-cost-section:nth-of-type(2) { height:226px!important; }
.figma-camp-column>.figma-cost-section:nth-of-type(3) { height:160px!important; }
.figma-camp-column>.figma-cost-section:nth-of-type(4) { height:131px!important; }
.figma-camp-column>.figma-cost-section:nth-of-type(5) { height:80px!important; }
.figma-camp-column>.figma-cost-section:nth-of-type(6) { height:64px!important; }
.figma-camp-column>.figma-cost-section:nth-of-type(7) { height:72px!important; }
.figma-camp-column>.figma-cost-section:nth-of-type(8) { height:71px!important; }
.figma-camp-column>.figma-cost-section:nth-of-type(9) { height:67px!important; }
.figma-camp-column>.figma-cost-section:nth-of-type(10) { height:227px!important; }
.figma-cost-total { grid-template-columns:minmax(127px,1fr) minmax(170px,1fr); width:100%; }
.figma-cost-total>strong { width:auto; }
.figma-cost-total>span { display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:flex-end; gap:0 8px; min-width:0; text-align:right; }
.figma-cost-total>span i { font:400 14px/23px Hanwha,Arial,sans-serif; }
.figma-cost-detail { grid-template-columns:1fr 1fr; }
.figma-cost-detail b { text-align:right; }
.figma-camp-column>.figma-player-cost {
  width:100%;
  height:94px!important;
  min-height:94px!important;
  margin:0;
  border-radius:0;
  grid-template-columns:1fr 1fr;
}
.figma-player-cost>b { display:flex; align-items:baseline; justify-content:flex-end; gap:8px; }
.figma-player-cost>b i { font:400 14px/1 Hanwha,Arial,sans-serif; }
@media screen and (max-width:1684px){.figma-comparison-report{overflow:visible}.figma-comparison-grid{min-width:max-content}}
@media print {
  #comparisonView,
  #comparisonView .comparison-shell,
  #comparisonView #comparisonContent,
  #comparisonView .figma-comparison-report,
  #comparisonView .figma-comparison-grid {
    overflow:visible!important;
    scrollbar-width:none!important;
    box-shadow:none!important;
    outline:0!important;
  }
  #comparisonView .figma-comparison-report::-webkit-scrollbar,
  #comparisonView .figma-comparison-grid::-webkit-scrollbar { display:none!important; width:0!important; height:0!important; }
  #comparisonView .figma-comparison-grid { padding:0!important; border:0!important; }
}
