/* Domain layout; presentation belongs to styles/components.css. */
.budget-app-shell .workspace { min-width: 0; }
.budget-app-shell .view { padding: var(--space-6); }
.budget-shell { display: grid; gap: var(--space-8); min-width: 0; }
.budget-hero { display: flex; align-items: flex-start; justify-content: space-between;  gap: var(--space-8); }
.budget-hero-actions, .budget-period-control, .budget-section-actions, .budget-inline-actions { display: flex; align-items: flex-end; gap: var(--space-2); flex-wrap: wrap; }
.budget-period-control label { display: grid; gap: .25rem; }
.budget-period-control select, .budget-period-control input { min-height: 2.5rem; }
.budget-privacy-note { display: flex; align-items: flex-start; gap: var(--space-6); padding: var(--space-6) var(--space-6); }
.budget-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.budget-kpis article { min-width: 0; }
.budget-kpis span, .budget-kpis small { display: block; }
.budget-kpis strong { display: block; }
.budget-section, .budget-panel { min-width: 0; }
.budget-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-6); margin-bottom: var(--space-6); }
.budget-section-head h3 { margin: .2rem 0 0; }
.budget-section-head p { margin: .35rem 0 0; }
.budget-overview-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(18rem, .6fr); gap: var(--space-6); align-items: start; }
.budget-side-stack { display: grid; gap: var(--space-6); min-width: 0; }
.budget-table-wrap { overflow: auto; overscroll-behavior-inline: contain; }
.budget-table { width: 100%; min-width: 0; border-collapse: collapse; }
.budget-table th, .budget-table td { padding: .7rem; text-align: left; vertical-align: middle; }
.budget-table th { position: sticky; top: 0; z-index: 1; }
.budget-table td.is-money, .budget-table th.is-money { text-align: right; }
.budget-table td:has(> .c-button) { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.budget-table input, .budget-table select { width: 100%; min-width: 0; }
.budget-table input[data-budget-comment] { min-width: 0; }
.budget-months { display: grid; grid-template-columns: repeat(12, minmax(4.25rem, 1fr)); gap: var(--space-2); align-items: end; min-height: 15rem; padding-top: var(--space-6); }
.budget-month { display: grid; grid-template-rows: 1fr auto; gap: var(--space-2); min-width: 0; height: 100%; text-align: center; }
.budget-month__bars { display: flex; align-items: end; justify-content: center; gap: .3rem; min-height: 10rem; }
.budget-month__bar { width: min(1.4rem, 38%); min-height: .2rem; }
.budget-month small { display: block; }
.budget-legend { display: flex; gap: var(--space-6); flex-wrap: wrap; margin-top: var(--space-3); }
.budget-legend span::before { content: ""; display: inline-block; width: .7rem; height: .7rem; margin-right: .35rem; }
.budget-settings-form, .budget-expense-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
.budget-field { display: grid; min-width: 0; }
.budget-field input, .budget-field select, .budget-field textarea { width: 100%; }
.budget-field.is-wide, .budget-form-actions { grid-column: 1 / -1; }
.budget-form-actions { display: flex; justify-content: flex-end; gap: var(--space-2); flex-wrap: wrap; }
.budget-evidence { display: grid; gap: var(--space-6); }
.budget-evidence article { display: grid; gap: var(--space-2); padding: var(--space-6); }
.budget-evidence h4 { margin: 0; }
.budget-evidence dl { display: grid; grid-template-columns: minmax(0, .6fr) minmax(0, 1fr); gap: .35rem var(--space-6); margin: 0; }
.budget-evidence dd { margin: 0; text-align: right; }
.budget-audit { display: grid; gap: 0; }
.budget-audit article { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-6); padding: .75rem 0; }
.budget-empty { display: grid; justify-items: center; min-height: 10rem; }
.budget-empty span { max-width: 36rem; }
@media (max-width: 1100px) {
.budget-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.budget-overview-grid { grid-template-columns: 1fr; }
.budget-months { overflow-x: auto; grid-template-columns: repeat(12, minmax(4.5rem, 1fr)); }
}
@media (max-width: 700px) {
.budget-app-shell .view { padding: var(--space-6); }
.budget-hero, .budget-section-head { align-items: stretch; flex-direction: column; }
.budget-hero-actions, .budget-period-control { width: 100%; }
.budget-period-control label { flex: 1; }
.budget-kpis, .budget-settings-form, .budget-expense-form { grid-template-columns: 1fr; }
.budget-table-wrap { overflow: visible; }
.budget-table, .budget-table tbody { display: grid; gap: var(--space-6); min-width: 0; }
.budget-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.budget-table tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); padding: var(--space-6); }
.budget-table td { display: grid; gap: .25rem; padding: 0; text-align: left !important; }

.budget-table td:first-child, .budget-table td:last-child { grid-column: 1 / -1; }
.budget-table input, .budget-table select, .budget-table input[data-budget-comment] { min-width: 0; }
.budget-audit article { grid-template-columns: 1fr; }
}
@media (max-width: 430px) {
.budget-app-shell .view { padding-inline: var(--space-2); }
.budget-table tr { grid-template-columns: 1fr; }
.budget-table td { grid-column: 1 / -1; }
.budget-evidence dl { grid-template-columns: 1fr; }
.budget-evidence dd { text-align: left; }
}
