/**
 * Built-in money amount formatting: right-align + tabular digits.
 * Thousand separators come from JS (display_currency / input live format).
 */
.display_currency,
.display_currency.pos_line_total_text,
span.price_total,
#total_payable,
.total_paying,
.balance_due,
.change_return_span,
#total_discount,
#order_tax,
.pos_line_total_text {
    text-align: right !important;
    font-variant-numeric: tabular-nums;
}

body.lockscreen #pos_table .display_currency.pos_line_total_text {
    text-align: right !important;
}

input.input_number:not(.input_quantity):not(.no_money_format),
input.payment-amount,
input.pos_unit_price,
input.pos_unit_price_inc_tax,
input.pos_line_total {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* Quantity stays numeric but can be right-aligned lightly */
input.input_quantity {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* Table cells that contain money displays */
td:has(> .display_currency),
td:has(.display_currency),
th:has(> .display_currency),
th:has(.display_currency),
td.money-cell,
th.money-cell,
td.text-right .display_currency {
    text-align: right !important;
}

td.money-cell,
th.money-cell {
    font-variant-numeric: tabular-nums;
}

/* Fallback class applied by JS when :has() is unavailable */
.money-align-right {
    text-align: right !important;
    font-variant-numeric: tabular-nums;
}
