/* Event budget calculator (site/budget) — logical properties only, RTL-safe. */

.budget-shell { display: grid; gap: 1.5rem; }
.budget-shell > * { min-inline-size: 0; }
@media (min-width: 64rem) {
  .budget-shell { grid-template-columns: 6fr 5fr; gap: 2rem; align-items: start; }
  .budget-result { position: sticky; inset-block-start: 6rem; }
}

.budget-form { padding: 1.5rem; border-radius: var(--r-xl, 24px); background: var(--white); border: 1px solid var(--line); box-shadow: var(--shadow-sm); }
@media (min-width: 40rem) { .budget-form { padding: 2rem; } }
.budget-form__title { font-size: 1.25rem; margin-block-end: 1.25rem; }
.budget-form .stepper { max-inline-size: none; }
.budget-form .stepper .input { min-inline-size: 0; -moz-appearance: textfield; }
.budget-form .stepper .input::-webkit-inner-spin-button,
.budget-form .stepper .input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.budget-form .stepper button:disabled { color: var(--faint, #9aa3b5); cursor: not-allowed; }
.budget-flights { display: grid; gap: .75rem; }
.budget-flights .hint { margin: 0; }

.budget-result { display: grid; gap: 1rem; }
.budget-total .price { font-size: clamp(1.5rem, 5vw, 2rem); overflow-wrap: anywhere; }
.budget-total > p { margin: 0; }
.budget-total.is-busy { opacity: .65; transition: opacity .15s; }
.budget-pp { display: flex; flex-wrap: wrap; gap: .25rem .5rem; align-items: baseline; color: var(--ink); }
.budget-pp strong { font-size: 1.125rem; }

/* Breakdown: fits 390px without horizontal scroll (overrides table.rooms min width). */
.budget-table-wrap { overflow-x: visible; }
table.rooms.budget-table { min-inline-size: 0; table-layout: auto; }
table.rooms.budget-table th, table.rooms.budget-table td { padding: .75rem .75rem; vertical-align: top; }
table.rooms.budget-table td:first-child { white-space: normal; inline-size: 55%; }
table.rooms.budget-table td:not(:first-child), table.rooms.budget-table tfoot th ~ td { text-align: end; font-variant-numeric: tabular-nums; }
table.rooms.budget-table thead th:not(:first-child) { text-align: end; }
table.rooms.budget-table tfoot th, table.rooms.budget-table tfoot td { border-block-start: 1px solid var(--line-strong, #d6dbe5); border-block-end: 0; font-weight: 800; color: var(--ink); background: var(--surface); }
table.rooms.budget-table tfoot th { font-size: var(--fs-sm); letter-spacing: 0; text-transform: none; }

.budget-item { display: inline-flex; gap: .5rem; align-items: center; }
.budget-item .ico { inline-size: 1rem; block-size: 1rem; color: var(--blue); flex: none; }
.budget-bar { display: block; block-size: .375rem; margin-block-start: .5rem; border-radius: var(--r-pill); background: var(--blue-50); overflow: hidden; }
.budget-bar > span { display: block; block-size: 100%; min-inline-size: 2px; border-radius: inherit; background: var(--blue); transition: inline-size .3s var(--ease, ease); }

@media (max-width: 30rem) {
  table.rooms.budget-table { font-size: var(--fs-xs, .8125rem); }
  table.rooms.budget-table th, table.rooms.budget-table td { padding: .65rem .5rem; }
}
