.numeric {
    text-align: right !important;
}

.float {
    text-align: right !important;
}

.text-right {
    text-align: right !important;
}

.no-outline:focus {
    outline: none !important;
    border-bottom: 2px solid rgba(34, 250, 29, 0.87);
}

.form-control-in-table {
    padding: 0.5rem 0.2rem !important;
    /*border-radius: 0 !important;*/
    /*border-bottom: 1pt solid;*/
    /*border-left: none;*/
    /*border-right: none;*/
    /*border-top: none;*/
}

.row-table > * {
    padding-left: 0.1rem !important;
    padding-right: 0.1rem !important;
    padding-top: 0.2rem !important;
}

.text-violet {
    color: blueviolet;
}

.bg-hoanggia {
    background-color: #ffcc00;
}

.modal-dialog-right {
    right: 0 !important;
}

.modal-open[style] {
    padding-right: 0 !important;
}

.no-bg {
    background-color: #00000000 !important;
}

.select2 .select2-sm {
    background-color: #e9ecef !important;
}

.btn__sm__w80 {
    width: 80pt !important;
}

hr.style13 {
    border-top: 1px solid forestgreen;
    opacity: .7;
}

/* === Neon hover cho MỌI nút `.btn` — quầng sáng lấy MÀU CỦA CHÍNH NÚT ĐÓ ===
   `--neon` là biến quyết định màu quầng. Mặc định `currentColor` — đúng cho
   `.btn-link` (nút chỉ có chữ, không nền, màu chữ CHÍNH LÀ màu nút). Các
   `.btn-*` có NỀN ĐẶC phải ghi đè `--neon` bằng chính màu nền, vì chữ của
   chúng là màu trắng nên `currentColor` sẽ cho ra quầng trắng (sai).
   Chỉ dùng `:hover`, KHÔNG đụng `:focus-visible` để giữ nguyên vòng focus của
   Bootstrap (accessibility). `-webkit-box-reflect` (phần phản chiếu dưới nút)
   chỉ có trên WebKit/Blink (Chrome/Edge/Safari); Firefox chỉ thấy quầng sáng. */
.btn:hover {
    -webkit-box-reflect: below 1px linear-gradient(transparent, #0005);
    box-shadow: 0 0 5px var(--neon, currentColor),
    0 0 12px var(--neon, currentColor),
    0 0 26px var(--neon, currentColor);
}

/* Màu quầng theo từng biến thể Bootstrap. Nút nền đặc lấy màu nền; nút viền
   (`outline-*`) lấy đúng màu viền; `btn-link` giữ `currentColor`. */
.btn-link {
    --neon: currentColor;
}

.btn-primary,
.btn-outline-primary {
    --neon: var(--bs-primary, #0d6efd);
}

.btn-secondary,
.btn-outline-secondary {
    --neon: var(--bs-secondary, #6c757d);
}

.btn-success,
.btn-outline-success {
    --neon: var(--bs-success, #198754);
}

.btn-danger,
.btn-outline-danger {
    --neon: var(--bs-danger, #dc3545);
}

.btn-warning,
.btn-outline-warning {
    --neon: var(--bs-warning, #ffc107);
}

.btn-info,
.btn-outline-info {
    --neon: var(--bs-info, #0dcaf0);
}

.btn-light,
.btn-outline-light {
    --neon: var(--bs-light, #f8f9fa);
}

.btn-dark,
.btn-outline-dark {
    --neon: var(--bs-dark, #212529);
}

/* Nút ICON NHỎ trong bảng dòng hàng (ghi chú / hợp đồng / bút chì / xoá):
   quầng NGẮN (2/6/12px) để không loang ra cả bảng. Đặt SAU `.btn:hover` nên
   thắng (cùng độ đặc hiệu). Màu quầng = `currentColor` — đúng màu của chính
   nút đó (cam khi có ghi chú, xanh khi có hợp đồng, đỏ với nút xoá, xám khi
   trống), không hardcode palette. Nút KHÔNG đổi màu chữ khi hover. */
.btn-icon-neon {
    transition: box-shadow .2s ease, background-color .2s ease;
}

.btn-icon-neon:hover,
.btn-icon-neon:focus-visible {
    background-color: rgba(0, 0, 0, .05);
    border-radius: 4px;
    box-shadow: 0 0 2px currentColor, 0 0 6px currentColor, 0 0 12px currentColor;
}

/* Nút TO (Lưu / In phiếu / In phiếu A4): quầng xa hơn. Màu quầng = màu của
   chính nút (`--neon`) — KHÔNG còn cyan cứng `#03e9f4` như trước, và cũng
   không đảo nền/chữ khi hover (theo luật "nút màu nào neon màu đó"). */
.btn-reflect-box:hover {
    -webkit-box-reflect: below 1px linear-gradient(transparent, #0005);
    box-shadow: 0 0 5px var(--neon, currentColor),
    0 0 25px var(--neon, currentColor),
    0 0 50px var(--neon, currentColor),
    0 0 200px var(--neon, currentColor);
}

/* === Ẩn ô "Giảm giá thêm" trên form 3 phiếu (hóa đơn / phiếu nhập / báo giá).
   CHỈ ẩn ở VIEW: field VẪN nằm trong DOM nên vẫn được gửi khi POST, số liệu
   giảm giá đã lưu giữ nguyên. KHÔNG xoá field, KHÔNG đụng `forms.py` —
   autoNumeric và widget `type="text"` giữ nguyên như cũ. */
#id_discount,
label[for="id_discount"],
#id_discount ~ small.form-text {
    display: none !important;
}

/* Xoá luôn khoảng trống của nhóm field (label + input + help là con trực tiếp
   của `div.mb-3` do django-bootstrap5 render). Để RIÊNG một rule vì `:has()`
   không có trên trình duyệt cũ: nếu gộp chung một danh sách selector thì
   trình duyệt cũ bỏ cả rule và ô "Giảm giá thêm" hiện lại. */
div.mb-3:has(> #id_discount) {
    display: none !important;
}
