/* Loyalty at the register (docs/POS-ODOO20.md section 1): the points row of the order panel and the Reward dialog. Theme variables only, so light and dark both work. */
.t-loyalty { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-bottom: 4px; font-size: 13px; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.t-loyalty > span:first-child { display: inline-flex; align-items: center; gap: 6px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.t-loyalty svg { color: var(--brand); flex: none; }
.ly-h { display: flex; align-items: center; gap: 8px; margin: 14px 0 6px; font-size: 14px; }
.ly-h:first-child { margin-top: 0; }
.ly-h svg { color: var(--brand); }
.ly-h .pill { margin-inline-start: auto; }
.cust-btn small + small { display: block; }
@media (max-width: 480px) { .t-loyalty { font-size: 12px; } }

/* Back office: the codes tab of a coupon program and the customer's loyalty tab (public/js/admin/loyalty-program.js) */
.loy-codes-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 12px; }
.loy-gen { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
.loy-gen input { width: 90px; }
.loy-card { display: grid; gap: 12px; }
.loy-prog { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-2); }
.loy-prog-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.loy-prog-head svg { color: var(--brand); }
.loy-bal { font-weight: 800; font-variant-numeric: tabular-nums; }
.loy-card .pos { color: var(--ok-ink); } .loy-card .neg { color: var(--danger-ink, #b3261e); }
.loy-codes .table-wrap, .loy-card .table-wrap { overflow-x: auto; }
