/* Override kecil di atas Sneat. Taruh gaya khusus aplikasi di sini. */

/* Elemen absolute di dalam tabel (mis. .visually-hidden di header kolom aksi) harus ikut terpotong
   oleh wrapper scroll; tanpa ini ia dihitung dari ancestor luar dan melebarkan halaman di HP. */
.table-responsive {
    position: relative;
}

/* ---------- Layar kasir ---------- */
.pos-cart .pos-col-name { min-width: 14rem; width: 40%; }
.pos-cart td:not(.pos-col-name) { white-space: nowrap; }
.pos-cart .pos-qty { width: 8.5rem; }
.pos-cart .pos-qty .form-control { min-width: 3.25rem; padding-inline: .25rem; text-align: center; }
.pos-cart input[data-field="price"], .pos-cart input[data-field="discount"] { width: 7.5rem; margin-left: auto; }
/* spinner bawaan input number memakan lebar dan tidak berguna di kasir */
.pos-cart input[type=number]::-webkit-outer-spin-button,
.pos-cart input[type=number]::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pos-cart input[type=number] { -moz-appearance: textfield; }
#pos_customer { text-overflow: ellipsis; }

@media (min-width: 992px) {
    .pos-summary { position: sticky; top: 5.5rem; }
}
@media (max-width: 991.98px) {
    .pos-mobile-bar {
        position: fixed; inset: auto 0 0 0; z-index: 1030;
        display: flex; align-items: center; justify-content: space-between; gap: 1rem;
        padding: .75rem 1rem; background: var(--bs-paper-bg, #fff);
        box-shadow: 0 -2px 10px rgba(0, 0, 0, .08);
    }
    /* ruang agar isi terakhir tidak tertutup bar */
    #pos { padding-bottom: 5rem; }
    .pos-cart .pos-qty .btn { min-width: 2.5rem; min-height: 2.5rem; }
}
