/* Scoped controls: keep the shared form-label grid from stacking search icons. */
.rollover-toggle { display:flex !important; align-items:center; gap:.5rem; cursor:pointer; min-width:5rem; white-space:nowrap; }
.rollover-toggle span { flex:none; }
.rollover-save-status { display:block; min-height:1.2rem; max-width:12rem; font-size:.65rem; overflow-wrap:anywhere; }
.budget-settings-page .rollover-toggle input[type=checkbox][role=switch] { appearance:none; display:block; width:2.6rem; height:1.5rem; min-height:0; padding:0; border:0; border-radius:1rem; background:#8090a0; position:relative; margin:0; flex:none; }
.budget-settings-page .rollover-toggle input[type=checkbox][role=switch]::before { content:none; }
.budget-settings-page .rollover-toggle input[type=checkbox][role=switch]::after { content:''; position:absolute; width:1.1rem; height:1.1rem; top:.2rem; left:.2rem; border-radius:50%; background:white; transition:transform .15s; }
.budget-settings-page .rollover-toggle input[type=checkbox][role=switch]:checked { background:#355c8a; }
.budget-settings-page .rollover-toggle input[type=checkbox][role=switch]:checked::after { transform:translateX(1.1rem); }
.rollover-toggle input[role=switch]:focus-visible { outline:2px solid #355c8a; outline-offset:3px; }
.salary-proposal-table { min-width:48rem; }
.salary-proposal-table td:first-child { min-width:15rem; }
.salary-proposal-table input { min-width:8rem; width:100%; }
.salary-planner .settings-panel { margin:1rem 0; }
.salary-detected { padding:1rem; background:#edf4fa; border-radius:.75rem; margin:1rem 0; }
.salary-detected strong { display:block; font-size:1.65rem; margin:.35rem 0; color:#355c8a; }
.salary-planner .settings-category-form label { font-size:.85rem; }
.salary-planner .settings-category-form { margin-top:1rem; }
.budget-tabs { display:flex; flex-wrap:wrap; gap:.4rem; margin:1rem 0 1.5rem; border-bottom:1px solid #d3ddd7; padding-bottom:.6rem; }
.budget-tabs a { padding:.65rem 1rem; border-radius:.5rem; text-decoration:none; color:#355c8a; font-weight:600; }
.budget-tabs a[aria-current=page] { background:#355c8a; color:white; }
.budget-group-bar { display:flex; align-items:center; gap:.5rem; }
.budget-group-bar .budget-group-toggle { flex:1; min-width:0; }
.budget-context-menu { position:relative; flex:none; }
.budget-context-menu summary { cursor:pointer; padding:.5rem .75rem; list-style:none; color:#355c8a; }
.budget-context-menu>div { position:absolute; right:0; z-index:20; width:min(16rem,70vw); background:white; padding:.5rem; border:1px solid #d3ddd7; border-radius:.6rem; box-shadow:0 8px 20px #0002; }
.budget-context-menu a { display:block; padding:.7rem; white-space:normal; }
.budget-category-edit { color:#244c76; font-weight:700; text-decoration:underline; text-decoration-color:#b8c8d9; text-underline-offset:3px; }
.budget-form-wide { grid-column:1/-1; }
.budget-advanced-fields { margin:1rem 0; padding:1rem; border:1px solid #d3ddd7; border-radius:.65rem; }
.budget-advanced-fields summary { cursor:pointer; font-weight:600; margin-bottom:.5rem; }
.budget-goal-preview { display:grid; gap:.5rem; padding:1rem 0; border-bottom:1px solid #d3ddd7; }
.budget-goal-preview progress { width:100%; height:.6rem; accent-color:#355c8a; }
.savings-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,19rem),1fr)); gap:1rem; margin:1.5rem 0; }
.savings-card { min-width:0; padding:1.25rem; border:1px solid #d3ddd7; background:#fff; border-radius:1rem; }
.savings-card progress { width:100%; accent-color:#355c8a; }
.savings-actions { display:flex; gap:.75rem; flex-wrap:wrap; align-items:center; margin-top:1rem; }
form.savings-actions { align-items:flex-end; }
form.savings-actions label { margin:0; }
form.savings-actions input, form.savings-actions button { margin-bottom:0; min-height:2.75rem; height:2.75rem; box-sizing:border-box; }
.budget-period-row { flex-wrap:wrap; }
.budget-context-menu:focus-within { z-index:21; }
.budget-advanced-fields, .savings-card, #create-goal { scroll-margin-top:7rem; }
.budget-workspace .budget-move-panel { display:block; margin:0 0 1rem; border:1px solid #d3ddd7; border-radius:.75rem; background:#fff; }
.budget-workspace .budget-move-panel>summary { display:list-item; margin:0; padding:1rem 1.25rem; cursor:pointer; font-weight:600; }
.budget-workspace .budget-move-panel .budget-tool-body { padding:0 1.25rem 1.25rem; }
.budget-workspace .budget-group-heading { display:flex; align-items:center; gap:.75rem; }
.budget-group-icon { width:1.5rem; height:1.5rem; flex:none; filter:invert(31%) sepia(26%) saturate(1143%) hue-rotate(173deg) brightness(95%) contrast(87%); }
.budget-workspace .budget-search-field,
.budget-settings-page .settings-search {
  display:flex !important; flex-direction:row; align-items:center; gap:.65rem;
  height:2.75rem; min-height:2.75rem; min-width:0; margin:0;
  padding:0 .75rem; box-sizing:border-box; background:#fff;
}
.budget-workspace .budget-search-field input,
.budget-settings-page .settings-search input {
  flex:1; min-width:0; width:100%; height:2.5rem; min-height:0;
  margin:0; padding:0; border:0; box-shadow:none; background:transparent;
  font-size:.875rem;
}
.budget-search-field>span:not(.sr-only), .settings-search>svg { flex:none; width:1rem; height:1rem; }
.budget-workspace .budget-filter-bar { align-items:center; }
.budget-workspace .budget-filter-field { margin:0; min-width:0; }
.budget-workspace .budget-filter-field :is(select,.searchable-select-input) { height:2.75rem; min-height:2.75rem; margin:0; }
.budget-workspace .budget-month-control { align-items:center; gap:.5rem; }
.budget-workspace .budget-month-field { display:flex !important; margin:0; padding:0; height:2.75rem; min-height:2.75rem; }
.budget-workspace .budget-month-field>.field-label,.budget-workspace .budget-filter-field>.field-label { position:absolute; width:1px; height:1px; min-height:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.budget-workspace .budget-search-field>.field-label,.budget-settings-page .settings-search>.field-label { flex:none; align-self:center; min-height:0; }
.budget-workspace .budget-month-field input { position:static; opacity:1; width:13rem; height:2.75rem; min-height:0; padding:.5rem .75rem; margin:0; box-sizing:border-box; font-size:1rem; }
.budget-workspace .budget-arrow { height:2.75rem; width:2.75rem; min-height:2.75rem; }
.budget-settings-page .settings-toolbar { flex-wrap:wrap; align-items:center; }
.budget-settings-page .settings-toolbar>div { flex:0 0 auto; }
.budget-settings-page .settings-toolbar .settings-search { flex:1 1 14rem; max-width:25rem; }
.budget-settings-page .settings-toolbar>select { flex:0 1 12rem; width:12rem; height:2.75rem; min-height:0; margin:0; }
.budget-settings-page .settings-category-form { align-items:start; }
.budget-settings-page .settings-category-form label { min-width:0; margin:0; }
.budget-settings-page .settings-category-form :is(input:not([type=checkbox]),select) { width:100%; min-width:0; height:2.75rem; box-sizing:border-box; }
.budget-settings-page .settings-category-form .form-actions { grid-column:1/-1; display:flex; gap:.6rem; align-items:center; }
.budget-settings-page .settings-panel { overflow-x:auto; }
.budget-settings-page .settings-search:focus-within,.budget-workspace .budget-search-field:focus-within { outline:2px solid #355c8a; outline-offset:2px; }
.budget-settings-page .settings-checkbox { display:flex; align-items:center; gap:.5rem; }
.budget-settings-page .settings-checkbox input { width:auto; }
.budget-settings-page .settings-table .settings-text-button { display:inline-flex; margin:.25rem; }
.budget-settings-page .settings-category-table { table-layout:auto; min-width:55rem; }
.budget-settings-page .settings-category-table th { width:auto; white-space:nowrap; }
.budget-settings-page .settings-category-table td:last-child { min-width:5rem; white-space:nowrap; }
.budget-settings-page .settings-group-icon { color:#355c8a; background:#e9eff4; }
.budget-settings-page .settings-inline-create:not(details) { margin-top:1rem; }
.budget-settings-page details.settings-inline-create { display:block; }
.budget-settings-page details.settings-inline-create form { margin:1rem 0; display:grid; gap:.6rem; }
.budget-settings-page .budget-settings-breadcrumbs { flex-wrap:wrap; }
@media(max-width:680px) {
  .budget-settings-page .settings-category-table { min-width:0; }
  .budget-settings-page .settings-toolbar { flex-direction:column; align-items:stretch; }
  .budget-settings-page .settings-toolbar .settings-search,.budget-settings-page .settings-toolbar>select { flex:none; width:100%; max-width:none; }
  .budget-workspace .budget-month-field { flex:1; min-width:0; }
  .budget-workspace .budget-month-field input { width:100%; min-width:0; }
}

.budget-tool-dialog {
  width: min(860px, calc(100vw - 32px));
  max-width: calc(100vw - 32px);
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 20px;
  box-sizing: border-box;
  border: 1px solid #dce5e2;
  border-radius: 18px;
  background: #fff;
  color: #172b3a;
  overflow: auto;
}
.budget-tool-dialog::backdrop { background: rgb(15 30 45 / 45%); }
.budget-tool-dialog-header { display: flex; align-items: center; gap: 16px; justify-content: space-between; }
.budget-tool-dialog-header h2 { margin: 0; min-width: 0; font-size: 1.25rem; }
.budget-tool-dialog-header button { flex-shrink: 0; }
.budget-tool-dialog .budget-tool-body { display: block; padding: 16px 0 0; }
.budget-tool-dialog .scroll { max-width: 100%; overflow-x: auto; }
@media (max-width: 600px) {
  .budget-tool-dialog { padding: 16px; }
  .budget-tool-dialog .budget-starter-grid { grid-template-columns: minmax(0, 1fr); }
}
