/* Budget detail, isolated from the app's other workspaces.
   The table keeps its columns on small screens and scrolls within its own frame. */
.budget-workspace {
  --bd-line: #e9eaec;
  --bd-soft: #f7f8fa;
  --bd-ink: #202124;
  --bd-muted: #717680;
  --bd-focus: #4e7c9e;
  --bd-columns: minmax(190px, 1.25fr) 66px 54px 104px 124px minmax(110px, .8fr) minmax(130px, 1fr) 72px 40px minmax(100px, .7fr) 198px 86px;
}

.budget-workspace .vista-switch {
  display: inline-flex;
  gap: 3px;
  margin: 36px 0 18px;
  padding: 4px;
  border: 1px solid var(--bd-line);
  border-radius: 11px;
  background: #eef0f2;
}

.budget-workspace .vista-tab {
  min-height: 34px;
  gap: 8px;
  border: 1px solid transparent;
  border-radius: 8px;
  background: transparent;
  padding: 0 15px;
  color: #626872;
  font-size: 13px;
  font-weight: 500;
}

.budget-workspace .vista-tab:hover { color: var(--bd-ink); }
.budget-workspace .vista-tab.active {
  border-color: #e2e4e7;
  background: #fff;
  color: var(--bd-ink);
  box-shadow: 0 1px 3px #20212409;
}

.budget-workspace .budget-scroll {
  max-width: 100%;
  margin: 0 0 32px;
  border: 1px solid var(--bd-line);
  border-radius: 15px;
  background: #fff;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-color: #c7cbd1 transparent;
  scrollbar-width: thin;
}

.budget-workspace .budget-detail-head { display: flex; margin: 24px 0 18px; }
.budget-workspace .budget-detail-head .vista-switch { flex: 0 0 auto; margin: 0; }
.budget-workspace .budget-table {
  width: 100%;
  min-width: 0;
  container-type: inline-size;
  container-name: budget-detail;
}
.budget-workspace .budget-scroll:has(> .budget-table) { overflow: hidden; }
.budget-workspace .budget-table > .table-header { display: none; }
.budget-workspace .stages { border: 0; border-radius: 0; background: #fff; }

.budget-workspace .stage-row {
  display: grid;
  grid-template-columns: minmax(180px, 1.2fr) minmax(120px, .8fr) 152px 156px 176px 76px;
  align-items: center;
  column-gap: 12px;
  min-height: 72px;
  padding: 10px 24px;
  border-bottom: 1px solid var(--bd-line);
  background: #fff;
}

.budget-workspace .stage-row > * { grid-row: 1; min-width: 0; }
.budget-workspace .stage-title { grid-column: 1; gap: 7px; }
.budget-workspace .stage-row .stage-desc-input { grid-column: 2; }
.budget-workspace .stage-row .stage-type-select { grid-column: 3; }
.budget-workspace .stage-row .total-pill { grid-column: 4; }
.budget-workspace .stage-row .target-pill,
.budget-workspace .stage-row .posventa-badge { grid-column: 5; }
.budget-workspace .stage-actions { grid-column: 6; gap: 8px; }
.budget-workspace .stage-row:hover,
.budget-workspace .stage.open > .stage-row { background: #fafbfc; }
.budget-workspace .stage.open > .stage-row { border-bottom-color: #e1e4e8; }

.budget-workspace .stage-name-input,
.budget-workspace .substage-name-input {
  min-height: 34px;
  padding: 6px 7px;
  color: var(--bd-ink);
  font-size: 14px;
  font-weight: 600;
  letter-spacing: -.015em;
}

.budget-workspace .stage-desc-input,
.budget-workspace .stage-type-select {
  min-height: 32px;
  padding: 6px 8px;
  color: var(--bd-muted);
  font-size: 12.5px;
}

.budget-workspace .stage-type-select { background: #f0f2f4; border-color: transparent; }
.budget-workspace .stage-drag-handle,
.budget-workspace .drag-handle { color: #9a9fa7; opacity: .35; }
.budget-workspace .stage-row:hover .stage-drag-handle,
.budget-workspace .edit-row:hover .drag-handle { opacity: .8; }
.budget-workspace .chevron { color: #878e98; border: 0; background: transparent; padding: 2px; cursor: pointer; }
.budget-workspace .stage > .stage-row > .stage-title > .chevron,
.budget-workspace .substage > .substage-row > .substage-title > .chevron { transform: rotate(180deg); }
.budget-workspace .stage.open > .stage-row > .stage-title > .chevron,
.budget-workspace .substage.open > .substage-row > .substage-title > .chevron { transform: rotate(-90deg); }

.budget-workspace .stage-row .total-pill,
.budget-workspace .substage-row .total-pill {
  justify-content: flex-end;
  min-height: 32px;
  gap: 6px;
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 0;
  color: var(--bd-ink);
  font-size: 14px;
  font-weight: 600;
}

.budget-workspace .stage-row .total-pill svg,
.budget-workspace .substage-row .total-pill svg { color: #9ba0a8; width: 14px; }
.budget-workspace .stage-row .target-pill,
.budget-workspace .substage-row .target-pill {
  min-height: 32px;
  justify-content: space-between;
  gap: 8px;
  padding: 0 10px;
  border: 1px solid #e4e6e9;
  border-radius: 7px;
  background: #f7f8fa;
}

.budget-workspace .target-pill > span {
  color: #747169;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}

.budget-workspace .target-pill-readonly strong { overflow: visible; font-size: 12.5px; font-weight: 500; }
.budget-workspace .target-pill input { width: 112px; font-size: 13px; }
.budget-workspace .target-pill:focus-within { border-color: var(--bd-focus); box-shadow: 0 0 0 3px #4e7c9e18; }
.budget-workspace .stage-switch { width: 36px; height: 22px; border-color: #d3d7dc; background: #dfe3e7; }
.budget-workspace .stage-switch.on { border-color: #3e7c66; background: #3e7c66; }
.budget-workspace .stage-switch.on .stage-switch-knob { transform: translateX(14px); }
.budget-workspace .stage.off > .stage-row { background: #f4f5f6; }
.budget-workspace .stage.off .stage-title,
.budget-workspace .stage.off .stage-desc-input,
.budget-workspace .stage.off .stage-type-select,
.budget-workspace .stage.off .stage-row .total-pill,
.budget-workspace .stage.off .stage-row .target-pill,
.budget-workspace .stage.off .stage-body { opacity: .65; }

.budget-workspace .stage-body,
.budget-workspace .substage-body {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-color: #c7cbd1 transparent;
  scrollbar-width: thin;
  background: #fff;
}
.budget-workspace .method-bar {
  min-height: 54px;
  padding: 10px 24px;
  border-color: var(--bd-line);
  background: #fafbfc;
}

.budget-workspace .method-bar .tabs { gap: 5px; flex-wrap: wrap; }
.budget-workspace .method-bar .tab-button,
.budget-workspace .crono-tab {
  min-height: 30px;
  padding: 4px 12px;
  border: 1px solid transparent;
  border-radius: 7px;
  background: transparent;
  color: var(--bd-muted);
  font-size: 12.5px;
  font-weight: 500;
}

.budget-workspace .method-bar .tab-button.active,
.budget-workspace .crono-tab.active {
  border-color: #e1e4e8;
  background: #fff;
  color: var(--bd-ink);
  box-shadow: 0 1px 2px #20212407;
}

.budget-workspace .method-bar .icon-button,
.budget-workspace .crono-tabs .icon-button { width: 28px; height: 28px; min-height: 28px; }
.budget-workspace .proveedores-button {
  min-height: 30px;
  margin-left: 10px;
  padding: 0 10px;
  border-color: transparent;
  border-radius: 7px;
  background: transparent;
  color: #656b75;
  font-size: 12px;
}

.budget-workspace .proveedores-button:hover,
.budget-workspace .proveedores-button.active { border-color: #e1e4e8; background: #fff; color: var(--bd-ink); }

.budget-workspace .method-notes {
  grid-template-columns: minmax(240px, 1.2fr) minmax(240px, 1.2fr) minmax(130px, .65fr) minmax(190px, .8fr);
  gap: 20px;
  padding: 18px 24px 20px;
  border-bottom-color: var(--bd-line);
  background: #fff;
}

.budget-workspace .method-note { align-content: start; gap: 8px; }
.budget-workspace .method-note > span { color: var(--bd-muted); font-size: 11.5px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.budget-workspace .method-note textarea { height: 38px; min-height: 38px; border-color: var(--bd-line); border-radius: 8px; background: #fafbfc; padding: 9px 10px; font-size: 12.5px; }
.budget-workspace .method-note textarea:focus,
.budget-workspace .method-note textarea.is-open { height: 150px; border-color: var(--bd-focus); background: #fff; box-shadow: 0 0 0 3px #4e7c9e18; }
.budget-workspace .method-thumb,
.budget-workspace .method-thumb img,
.budget-workspace .method-add-image { width: 38px; height: 38px; border-radius: 8px; }
.budget-workspace .method-add-image { border: 1px solid var(--bd-line); background: #fafbfc; }
.budget-workspace .method-doc { border-color: var(--bd-line); border-radius: 7px; background: #fafbfc; }
.budget-workspace .method-doc-open { min-height: 32px; padding: 6px 9px; }
.budget-workspace .method-add-doc { min-height: 34px; border: 1px solid var(--bd-line); border-radius: 7px; padding: 6px 10px; color: var(--bd-muted); font-size: 12px; }
.budget-workspace .method-thumb:focus-within .method-thumb-del,
.budget-workspace .method-doc:focus-within .method-doc-del { display: flex; }

.budget-workspace .table-header,
.budget-workspace .edit-row:not([data-schedule-id]) {
  display: grid;
  min-width: 1440px;
  grid-template-columns: var(--bd-columns);
  align-items: center;
  column-gap: 6px;
  padding-right: 24px;
  padding-left: 24px;
}

.budget-workspace .table-header-interno {
  min-height: 49px;
  margin: 0;
  border-color: var(--bd-line);
  background: #f7f8fa;
  opacity: 1;
}

.budget-workspace .table-header span { color: #6b727d; font-size: 11px; font-weight: 500; line-height: 1.35; letter-spacing: 0; text-transform: none; overflow-wrap: normal; }
.budget-workspace .table-header span:nth-child(2),
.budget-workspace .table-header span:nth-child(4),
.budget-workspace .table-header span:nth-child(5) { text-align: right; padding-right: 6px; }
.budget-workspace .table-header span:nth-child(8),
.budget-workspace .table-header span:nth-child(9) { text-align: center; }
.budget-workspace .edit-row { min-height: 47px; border-color: #eceef0; background: #fff; padding-top: 5px; padding-bottom: 5px; }
.budget-workspace .edit-row:hover { background: #f7f8fa; }
.budget-workspace .edit-row:focus-within { box-shadow: inset 2px 0 #6e8fa7; }
.budget-workspace .edit-row > * { min-width: 0; }
.budget-workspace .edit-row input,
.budget-workspace .edit-row select,
.budget-workspace .edit-row textarea { min-width: 0; min-height: 32px; border-radius: 6px; padding: 6px; color: var(--bd-ink); font-size: 12.5px; }
.budget-workspace .edit-row input:hover { border-color: #dfe3e8; background: #fff; }
.budget-workspace .edit-row input[data-row-field="name"] { font-weight: 500; }
.budget-workspace .edit-row input[data-row-field="quantity"],
.budget-workspace .edit-row input[data-row-field="unitPrice"] { text-align: right; }
.budget-workspace .edit-row input[data-row-field="unit"] { color: var(--bd-muted); }
.budget-workspace .money-cell { padding-right: 6px; color: var(--bd-ink); font-size: 12.5px; font-weight: 600; text-align: right; }
.budget-workspace .item-cell { display: flex; gap: 4px; }
.budget-workspace .edit-row > [data-label="Verificacion"] { display: flex; justify-content: center; }
.budget-workspace .toggle { flex: 0 0 auto; border-color: #d5d9df; background: #dfe3e7; }
.budget-workspace .toggle:has(input:checked) { border-color: #3e7c66; background: #3e7c66; }
.budget-workspace .toggle:has(input:focus-visible) { outline: 2px solid var(--bd-focus); outline-offset: 3px; }
.budget-workspace .foto-boton,
.budget-workspace .foto-thumb { width: 32px; height: 28px; border-color: #e0e4e8; border-radius: 6px; background: #fff; }
.budget-workspace .row-actions-cell { gap: 2px; }
.budget-workspace .row-actions-cell .icon-button { width: 27px; height: 30px; min-height: 30px; }

.budget-workspace .add-line { min-height: 42px; gap: 22px; padding: 5px 24px; border-color: var(--bd-line); background: #fff; }
.budget-workspace .add-line .link-button { min-height: 32px; padding: 4px 0; color: #6b727d; font-size: 12px; font-weight: 500; }
.budget-workspace .add-line .link-button:hover { color: var(--bd-ink); }
.budget-workspace .stages > .add-line { min-height: 58px; border-bottom: 0; background: #fafbfc; }
.budget-workspace .stages > .add-line .link-button { color: var(--bd-ink); font-size: 13px; }
.budget-workspace .section-bar { min-height: 46px; padding: 10px 24px; border-color: var(--bd-line); background: #f7f8fa; color: #535b66; font-size: 12.5px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.budget-workspace .section-bar strong { font-size: 13px; font-weight: 500; }

.budget-workspace .substage { width: 100%; min-width: 0; border-color: var(--bd-line); }
.budget-workspace .substage-row { grid-template-columns: minmax(230px, 1fr) 174px 184px 32px; min-height: 57px; gap: 18px; padding: 8px 24px 8px 44px; background: #fafbfc; border-color: var(--bd-line); }
.budget-workspace .substage-name-input { font-size: 13px; }
.budget-workspace .substage-row .total-pill { font-size: 13px; }
.budget-workspace .substage-body .edit-row,
.budget-workspace .substage-body .table-header-interno { padding-left: 24px; }
.budget-workspace .substage-body .method-bar,
.budget-workspace .substage-body .method-notes,
.budget-workspace .substage-body .add-line { padding-left: 44px; }
.budget-workspace .substage-body .method-bar { background: #fff; }
.budget-workspace .substage-body .method-notes { background: #fff; }

.budget-workspace .proveedores-panel { padding: 18px 24px 4px; border-color: var(--bd-line); background: #fff; }
.budget-workspace .proveedores-head { margin-bottom: 14px; font-size: 13px; font-weight: 500; }
.budget-workspace .proveedores-head small { color: var(--bd-muted); }
.budget-workspace .proveedor-row { min-height: 44px; border-color: var(--bd-line); }
.budget-workspace .proveedor-header { min-height: 28px; color: var(--bd-muted); font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.budget-workspace .proveedor-row input { min-height: 34px; border-radius: 6px; font-size: 13px; }
.budget-workspace .proveedor-wa { width: 30px; height: 30px; border-radius: 7px; color: #3e7c66; }

/* Subtle row tints carry the existing purchase states without dominating the ledger. */
.budget-workspace .edit-row.estado-fila-duda { background: #fdf1f0; box-shadow: inset 3px 0 #c1645c; }
.budget-workspace .edit-row.estado-fila-confirmado { background: #fcf6ec; box-shadow: inset 3px 0 #c69754; }
.budget-workspace .edit-row.estado-fila-senado { background: #f0f7fa; box-shadow: inset 3px 0 #77a7bc; }
.budget-workspace .edit-row.estado-fila-parcial { background: #fcf9e9; box-shadow: inset 3px 0 #b7a249; }
.budget-workspace .edit-row.estado-fila-pagado { background: #f0f7f2; box-shadow: inset 3px 0 #76a487; }
.budget-workspace .edit-row.estado-fila-pagadosf { background: #e0eee5; box-shadow: inset 3px 0 #32724c; }
.budget-workspace .stage.posventa > .stage-row { background: #fbf8ed; }
.budget-workspace .stage.posventa .stage-body { background: #fffdf7; }
.budget-workspace .posventa-badge { max-width: fit-content; border: 1px solid #e8dfbf; border-radius: 6px; background: #f7f0d8; color: #806b31; font-size: 11px; font-weight: 500; }
.budget-workspace .estado-boton-punto { width: 27px; height: 30px; border-color: transparent; border-radius: 6px; background: transparent; }
.budget-workspace .estado-boton-punto:hover { border-color: #dfe3e8; background: #fff; }
.budget-workspace .estado-opciones { min-width: 214px; padding: 6px; border-color: var(--bd-line); border-radius: 11px; box-shadow: 0 12px 36px #20212420, 0 2px 5px #20212407; }
.budget-workspace .estado-opcion { min-height: 34px; gap: 10px; border-radius: 6px; padding: 7px 10px; font-size: 12.5px; }
.budget-workspace .estado-opcion.activa { color: var(--bd-ink); background: #f1f3f5; font-weight: 600; }

.budget-workspace .col-pagos,
.budget-workspace .pagos-cell { grid-template-columns: 24px 66px minmax(0, 1fr); gap: 3px; }
.budget-workspace .col-pagos b { padding-bottom: 2px; }
.budget-workspace .col-pagos em { font-size: 10px; color: #7d838d; opacity: 1; }
.budget-workspace .col-pagos em:last-child { text-align: right; padding-right: 3px; }
.budget-workspace .pagos-cell input { min-height: 30px; padding: 4px 2px; font-size: 12px; }
.budget-workspace .pagos-cell .pago-monto { text-align: right; }
.budget-workspace .pagos-cell.pagos-vacio { color: #a0a6af; }
.budget-workspace .pagos-resumen { grid-template-columns: 65px minmax(0, 1fr); min-height: 30px; border-radius: 5px; background: #ffffff85; padding: 4px 1px; font-size: 12px; }
.budget-workspace .pagos-resumen span:last-child { text-align: right; }
.budget-workspace .pagos-resumen:hover,
.budget-workspace .pagos-resumen.abierto { border-color: #cfd6df; background: #fff; }
.budget-workspace .pagos-panel { padding: 14px; border-color: var(--bd-line); border-radius: 13px; box-shadow: 0 16px 46px #20212425; }
.budget-workspace .pagos-panel-head { margin-bottom: 14px; }
.budget-workspace .pagos-panel-grid { row-gap: 7px; }
.budget-workspace .pagos-panel-titulo { padding-bottom: 2px; color: var(--bd-muted); font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.budget-workspace .pagos-panel input { min-height: 32px; border-color: #dfe3e8; font-size: 12px; }
.budget-workspace .pagos-panel-pie { padding-top: 12px; border-top: 1px solid var(--bd-line); line-height: 1.6; }

/* Schedule uses the same visual language and a separate, internally scrolling grid. */
.budget-workspace .crono-bar { align-items: center; gap: 24px; margin: 0 0 20px; padding: 0; }
.budget-workspace .crono-precio { gap: 12px; }
.budget-workspace .crono-precio > span:first-child,
.budget-workspace .crono-bar-total span { color: var(--bd-muted); font-size: 12px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.budget-workspace .crono-precio-input { min-height: 36px; border-color: #dde1e6; border-radius: 8px; padding: 0 11px; }
.budget-workspace .crono-precio-input input { width: 108px; font-size: 13px; font-weight: 500; }
.budget-workspace .crono-bar-totales { gap: 26px; }
.budget-workspace .crono-bar-total { display: grid; gap: 4px; }
.budget-workspace .crono-bar-total strong { color: var(--bd-ink); font-size: 15px; font-weight: 600; }
.budget-workspace .crono-bar-suma { border-left: 1px solid var(--bd-line); padding-left: 26px; }
.budget-workspace .crono-table {
  width: 100%;
  min-width: 0;
  container-type: inline-size;
  container-name: crono-detail;
}
.budget-workspace .budget-scroll:has(> .crono-table) { overflow: hidden; }
.budget-workspace .crono-bloque { width: 100%; min-width: 0; margin: 0; background: #fff; }
.budget-workspace .crono-cuerpo {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-color: #c7cbd1 transparent;
  scrollbar-width: thin;
}
.budget-workspace .crono-band { gap: 12px; border-top: 0; border-color: var(--bd-line); background: #f7f8fa; padding: 18px 24px 14px; }
.budget-workspace .crono-band-head { display: grid; grid-template-columns: 16px minmax(0, 1fr); column-gap: 11px; row-gap: 4px; }
.budget-workspace .crono-chevron { grid-column: 1; grid-row: 1; transform: rotate(-90deg); }
.budget-workspace .crono-bloque.cerrado .crono-chevron { transform: rotate(180deg); }
.budget-workspace .crono-band-name { grid-column: 2; grid-row: 1; width: 100%; min-width: 0; min-height: 34px; padding: 5px 7px; font-size: 14px; font-weight: 600; letter-spacing: -.01em; text-transform: none; }
.budget-workspace .crono-band-name-fijo { grid-column: 2; grid-row: 1; font-size: 13px; font-weight: 600; }
.budget-workspace .crono-band-datos { grid-column: 2; grid-row: 2; min-width: 0; padding-left: 7px; color: var(--bd-muted); font-size: 11.5px; line-height: 1.7; white-space: normal; overflow-wrap: anywhere; }
.budget-workspace .crono-band-datos strong { color: #4b535e; font-weight: 600; white-space: nowrap; }
.budget-workspace .crono-tabs { gap: 5px; padding-left: 27px; }
.budget-workspace .crono-del-bloque { min-height: 30px; border-color: transparent; border-radius: 7px; background: transparent; padding: 5px 10px; font-size: 12px; }
.budget-workspace .crono-del-bloque:hover { border-color: #eccfcb; background: #fff6f5; color: #a94f46; }
.budget-workspace .crono-header,
.budget-workspace .crono-row { display: grid; min-width: 1160px; grid-template-columns: 74px minmax(180px, 1.2fr) minmax(180px, 1.2fr) 90px 80px 130px minmax(180px, 1fr) 84px 32px; align-items: center; column-gap: 10px; padding-right: 24px; padding-left: 24px; }
.budget-workspace .crono-header { min-height: 43px; padding-top: 10px; padding-bottom: 10px; border-color: var(--bd-line); background: #f7f8fa; }
.budget-workspace .crono-header span { color: #6b727d; font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.budget-workspace .crono-row { min-height: 46px; padding-top: 5px; padding-bottom: 5px; border-color: #eceef0; }
.budget-workspace .crono-row > * { min-width: 0; }
.budget-workspace .crono-row input,
.budget-workspace .crono-extra-row input { min-height: 32px; border-radius: 6px; font-size: 12.5px; }
.budget-workspace .crono-costo,
.budget-workspace .crono-extra-total { font-size: 12.5px; font-weight: 500; text-align: right; white-space: nowrap; }
.budget-workspace .crono-acum { color: #8c939d; font-size: 11px; }
.budget-workspace .crono-extras { min-width: 1160px; padding: 18px 24px 4px; border-color: var(--bd-line); background: #fff; }
.budget-workspace .crono-extras-head { padding-bottom: 14px; }
.budget-workspace .crono-extras-head span { color: #535b66; font-size: 12.5px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.budget-workspace .crono-extras-head strong { font-size: 13px; }
.budget-workspace .crono-extras-header,
.budget-workspace .crono-extra-row { display: grid; grid-template-columns: minmax(220px, 1.2fr) 90px 130px 150px minmax(260px, 1.5fr) 32px; gap: 10px; }
.budget-workspace .crono-extras-header { min-height: 30px; align-items: center; }
.budget-workspace .crono-extras-header span { color: var(--bd-muted); font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.budget-workspace .crono-extra-row { min-height: 43px; border-color: var(--bd-line); padding: 5px 0; }
.budget-workspace .crono-extras .add-line { min-height: 40px; border: 0; padding: 4px 0; }
.budget-workspace .crono-cierre { padding: 18px 24px; border-color: var(--bd-line); background: #fafbfc; }
.budget-workspace .crono-cierre-fila { grid-template-columns: minmax(220px, 1fr) 80px 120px 170px; gap: 16px; padding: 5px 0; font-size: 12.5px; }
.budget-workspace .crono-cierre-fila strong { font-weight: 500; }
.budget-workspace .crono-cierre-precio { font-size: 12px; }
.budget-workspace .crono-cierre-total { margin-top: 9px; padding-top: 12px; border-color: #e0e4e8; font-size: 14px; }
.budget-workspace .crono-cierre-total strong,
.budget-workspace .crono-cierre-total > span:first-child { font-weight: 600; }
.budget-workspace .crono-resumen { width: 100%; min-width: 0; padding: 26px 24px; border-top: 1px solid #d9dde3; background: #fff; }
.budget-workspace .crono-res-titulo { margin-bottom: 17px; color: var(--bd-ink); font-size: 14px; font-weight: 600; letter-spacing: -.01em; text-transform: none; }
.budget-workspace .crono-res-fila { grid-template-columns: minmax(0, .8fr) minmax(0, 1.4fr) 190px; gap: 20px; padding: 7px 0; font-size: 13px; }
.budget-workspace .crono-res-fila > * { min-width: 0; overflow-wrap: anywhere; }
.budget-workspace .crono-res-det { color: var(--bd-muted); font-size: 12px; }
.budget-workspace .crono-res-fila strong { font-weight: 500; }
.budget-workspace .crono-res-total { margin-top: 12px; padding-top: 17px; border-color: var(--bd-line); font-size: 16px; }
.budget-workspace .crono-res-total .crono-res-que,
.budget-workspace .crono-res-total strong { font-weight: 600; }
.budget-workspace .crono-empty { min-height: 160px; align-content: center; gap: 8px; padding: 28px 24px; font-size: 14px; }
.budget-workspace .crono-empty p { margin: 0; }
.budget-workspace .stage-crono { width: 100%; min-width: 0; container-type: inline-size; container-name: crono-detail; }
.budget-workspace .stage-crono .crono-bloque { min-width: 0; }

.budget-workspace .move-item-menu { padding: 7px; border-color: var(--bd-line); border-radius: 12px; box-shadow: 0 16px 46px #20212425; }
.budget-workspace .move-item-menu-title { padding: 9px 10px; color: var(--bd-muted); font-size: 11.5px; font-weight: 500; letter-spacing: 0; text-transform: none; }
.budget-workspace .move-item-menu .move-option { min-height: 36px; border-radius: 6px; font-size: 13px; }
.budget-workspace .modal-backdrop { z-index: 100; background: #20212445; backdrop-filter: blur(4px); }
.budget-workspace .modal { max-height: calc(100dvh - 40px); overflow-y: auto; border: 1px solid #ffffffb3; border-radius: 18px; box-shadow: 0 24px 90px #151c2733; }
.budget-workspace .modal header,
.budget-workspace .modal footer { padding: 20px 24px; border-color: var(--bd-line); }
.budget-workspace .modal footer { background: #fafbfc; }
.budget-workspace .modal h2 { font-size: 18px; font-weight: 600; letter-spacing: -.02em; }
.budget-workspace .modal-body { gap: 16px; padding: 24px; }
.budget-workspace .modal .field label { color: #626a75; font-size: 12px; font-weight: 500; }
.budget-workspace .modal .field input,
.budget-workspace .modal .field textarea,
.budget-workspace .modal .field select { min-height: 40px; border-color: #dfe3e8; border-radius: 8px; padding: 9px 11px; font-size: 14px; }
.budget-workspace .modal-copy { color: #626a75; font-size: 14px; line-height: 1.6; }
.budget-workspace .fotos-modal { width: min(800px, 100%); }
.budget-workspace .modal-head,
.budget-workspace .modal-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 20px 24px; }
.budget-workspace .modal-head { border-bottom: 1px solid var(--bd-line); }
.budget-workspace .modal-head h3 { margin: 0; font-size: 17px; font-weight: 600; letter-spacing: -.02em; }
.budget-workspace .modal-foot { border-top: 1px solid var(--bd-line); background: #fafbfc; }
.budget-workspace .fotos-grid { padding: 20px 24px; gap: 14px; }
.budget-workspace .fotos-item { border-color: var(--bd-line); border-radius: 10px; }
.budget-workspace .fotos-vacio { color: var(--bd-muted); }

/* Editing is discoverable on hover and unmistakable on keyboard focus. */
.budget-workspace :is(.stage-name-input, .stage-desc-input, .stage-type-select, .substage-name-input, .edit-row input, .edit-row select, .edit-row textarea, .proveedor-row input, .crono-row input, .crono-extra-row input, .crono-band-name, .crono-tab-input, .pagos-panel input):focus {
  outline: none;
  border-color: var(--bd-focus);
  background: #fff;
  box-shadow: 0 0 0 3px #4e7c9e18;
}

.budget-workspace :is(.budget-scroll, .crono-bar, .vista-switch, .modal, .pagos-panel, .move-item-menu) :is(button, a, select, textarea, input):focus-visible { outline: 2px solid var(--bd-focus); outline-offset: 2px; }
.budget-workspace .edit-row input::placeholder,
.budget-workspace .method-note textarea::placeholder,
.budget-workspace .crono-row input::placeholder { color: #989fa9; }

@media (max-width: 860px) {
  .budget-workspace .crono-bar { align-items: flex-start; gap: 18px; }
  .budget-workspace .crono-bar-totales { gap: 18px; }
  .budget-workspace .crono-bar-total strong { font-size: 14px; }
  .budget-workspace .crono-bar-suma { padding-left: 18px; }
  .budget-workspace .crono-row > *::before,
  .budget-workspace .crono-extra-row > *::before { content: none; display: none; }
  .budget-workspace .crono-cierre-precio,
  .budget-workspace .crono-res-det { grid-column: auto; }
  .budget-workspace .crono-cierre-precio { text-align: right; }
  .budget-workspace .estado-opciones { right: 0; left: auto; }
}

@media (max-width: 700px) {
  .budget-workspace .vista-switch { margin-top: 26px; margin-bottom: 14px; }
  .budget-workspace .budget-scroll { margin: 0 0 24px; border-radius: 11px; overflow-x: auto; }
  .budget-workspace .stage-row .total-pill,
  .budget-workspace .substage-row .total-pill { justify-self: stretch; }
  .budget-workspace .edit-row > *::before { content: none; display: none; }
  .budget-workspace .drag-handle { display: flex; }
  .budget-workspace .money-cell { padding: 0 6px 0 0; }
  .budget-workspace .proveedor-row { display: grid; grid-template-columns: minmax(160px, 1fr) minmax(160px, .8fr) minmax(160px, 1fr) minmax(220px, 1.6fr) 32px; gap: 10px; padding: 4px 0; }
  .budget-workspace .proveedor-row > div::before { content: none; display: none; }
  .budget-workspace .proveedor-header { display: grid; }
  .budget-workspace .crono-bar-totales { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
  .budget-workspace .crono-bar-suma { grid-column: 1 / -1; padding: 12px 0 0; border-left: 0; border-top: 1px solid var(--bd-line); }
  .budget-workspace .modal-backdrop { padding: 12px; }
  .budget-workspace .modal { max-height: calc(100dvh - 24px); border-radius: 14px; }
  .budget-workspace .modal header,
  .budget-workspace .modal footer,
  .budget-workspace .modal-head,
  .budget-workspace .modal-foot,
  .budget-workspace .modal-body,
  .budget-workspace .fotos-grid { padding: 18px; }
  .budget-workspace .method-thumb-del,
  .budget-workspace .method-doc-del { display: flex; }
}

/* Stage totals remain in view; only the ledger beneath an open stage can scroll. */
@container budget-detail (max-width: 1000px) {
  .budget-workspace .stage-row {
    grid-template-columns: minmax(170px, 1fr) 156px 176px 76px;
    row-gap: 3px;
    padding: 12px 20px;
  }
  .budget-workspace .stage-title { grid-column: 1; grid-row: 1; }
  .budget-workspace .stage-row .total-pill { grid-column: 2; grid-row: 1; }
  .budget-workspace .stage-row .target-pill,
  .budget-workspace .stage-row .posventa-badge { grid-column: 3; grid-row: 1; }
  .budget-workspace .stage-actions { grid-column: 4; grid-row: 1; }
  .budget-workspace .stage-row .stage-desc-input { grid-column: 1 / 3; grid-row: 2; }
  .budget-workspace .stage-row .stage-type-select { grid-column: 3 / 5; grid-row: 2; justify-self: end; max-width: 100%; }
  .budget-workspace .method-notes { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
  .budget-workspace .substage-row { grid-template-columns: minmax(140px, 1fr) 156px 176px 28px; gap: 12px; padding-left: 24px; }
  .budget-workspace .proveedores-panel { min-width: 900px; }
}

@container budget-detail (max-width: 720px) {
  .budget-workspace .stage-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    row-gap: 7px;
    column-gap: 10px;
    padding: 14px 12px;
  }
  .budget-workspace .stage-title { grid-column: 1 / -1; grid-row: 1; padding-right: 75px; }
  .budget-workspace .stage-actions { position: absolute; right: 12px; top: 17px; grid-column: auto; grid-row: auto; }
  .budget-workspace .stage-row .total-pill { grid-column: 1; grid-row: 2; justify-self: start; justify-content: flex-start; font-size: 13px; }
  .budget-workspace .stage-row .total-pill svg { display: none; }
  .budget-workspace .stage-row .target-pill,
  .budget-workspace .stage-row .posventa-badge { grid-column: 2; grid-row: 2; }
  .budget-workspace .stage-row .target-pill { display: grid; justify-content: end; gap: 0; border: 0; padding: 0; background: transparent; text-align: right; }
  .budget-workspace .stage-row .target-pill > span { font-size: 10px; line-height: 1.4; }
  .budget-workspace .stage-row .target-pill strong { font-size: 12px; }
  .budget-workspace .stage-row .stage-desc-input { grid-column: 1; grid-row: 3; width: 100%; padding-left: 0; font-size: 12px; }
  .budget-workspace .stage-row .stage-type-select { grid-column: 2; grid-row: 3; width: 100%; font-size: 11.5px; padding-inline: 5px; }
  .budget-workspace .method-bar,
  .budget-workspace .substage-body .method-bar { padding: 10px 12px; }
  .budget-workspace .method-bar .tabs { width: 100%; gap: 4px; }
  .budget-workspace .proveedores-button { margin-left: 0; }
  .budget-workspace .method-notes,
  .budget-workspace .substage-body .method-notes { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 16px 12px; gap: 16px 12px; }
  .budget-workspace .method-note:nth-child(-n+2) { grid-column: 1 / -1; }
  .budget-workspace .method-doc-name { max-width: 80px; }
  .budget-workspace .method-doc-open { gap: 4px; padding-inline: 7px; }
  .budget-workspace .method-doc-open small { display: none; }
  .budget-workspace .add-line,
  .budget-workspace .substage-body .add-line { gap: 10px; flex-wrap: wrap; padding-inline: 12px; }
  .budget-workspace .section-bar { padding-inline: 12px; gap: 10px; }
  .budget-workspace .substage-row { position: relative; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 7px 10px; padding: 12px; }
  .budget-workspace .substage-title { grid-column: 1 / -1; grid-row: 1; padding-right: 35px; }
  .budget-workspace .substage-row > .icon-button { position: absolute; top: 14px; right: 12px; }
  .budget-workspace .substage-row .total-pill { grid-column: 1; grid-row: 2; justify-self: start; justify-content: flex-start; font-size: 12.5px; }
  .budget-workspace .substage-row .total-pill svg { display: none; }
  .budget-workspace .substage-row .target-pill { grid-column: 2; grid-row: 2; justify-self: stretch; gap: 4px; padding: 0 6px; }
  .budget-workspace .substage-row .target-pill > span { font-size: 10px; }
  .budget-workspace .substage-row .target-pill input { width: 100%; min-width: 0; font-size: 12px; }
}

@media (max-width: 700px) {
  .budget-workspace .budget-detail-head { align-items: flex-start; flex-wrap: wrap; }
  .budget-workspace .budget-detail-head .vista-switch { margin: 0; }
}

/* Closed schedule stages and the overall summary stay within the available width. */
@container crono-detail (max-width: 900px) {
  .budget-workspace .crono-res-fila { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 20px; padding: 9px 0; }
  .budget-workspace .crono-res-que { grid-column: 1; grid-row: 1; }
  .budget-workspace .crono-res-fila strong { grid-column: 2; grid-row: 1; white-space: nowrap; }
  .budget-workspace .crono-res-det { grid-column: 1 / -1; grid-row: 2; }
  .budget-workspace .crono-cierre-fila { grid-template-columns: minmax(0, 1fr) 60px 95px 150px; gap: 12px; }
}

@container crono-detail (max-width: 600px) {
  .budget-workspace .crono-band { padding: 14px 12px; gap: 12px; }
  .budget-workspace .crono-band-datos { padding-left: 0; font-size: 11px; line-height: 1.8; }
  .budget-workspace .crono-band-name { padding-left: 0; }
  .budget-workspace .crono-tabs { padding-left: 0; }
  .budget-workspace .crono-del-bloque { margin-left: 0; }
  .budget-workspace .crono-resumen { padding: 22px 12px; }
  .budget-workspace .crono-res-fila { gap: 5px 10px; font-size: 12px; }
  .budget-workspace .crono-res-det { font-size: 11px; line-height: 1.6; }
  .budget-workspace .crono-res-total { font-size: 13px; }
  .budget-workspace .crono-cierre { padding: 16px 12px; }
  .budget-workspace .crono-cierre-fila { grid-template-columns: minmax(0, 1fr) auto; gap: 3px 10px; padding: 7px 0; font-size: 12px; }
  .budget-workspace .crono-cierre-fila > span:first-child { grid-column: 1; grid-row: 1; }
  .budget-workspace .crono-cierre-fila > strong { grid-column: 2; grid-row: 1; white-space: nowrap; }
  .budget-workspace .crono-cierre-cant { grid-column: 1; grid-row: 2; text-align: left; }
  .budget-workspace .crono-cierre-precio { grid-column: 2; grid-row: 2; }
  .budget-workspace .crono-cierre-fila > span:empty { display: none; }
  .budget-workspace .crono-table > .add-line { flex-wrap: wrap; gap: 6px; padding: 10px 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .budget-workspace :is(.stage-row, .stage-switch, .stage-switch-knob, .chevron, .crono-chevron, .toggle span, .method-note textarea, .vista-tab) { transition: none; }
}
