/* Khung Nghiệp vụ trên form chứng từ + trang module nghiepvu */
.nv-panel { border: 1px solid #d9e2ec; border-left: 4px solid #2f6fb3; border-radius: 4px; background: #f8fbff; padding: 8px 12px; margin: 0 0 12px; }
.nv-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.nv-title { font-weight: 600; color: #2f6fb3; margin-right: auto; }
.nv-actions { display: flex; flex-wrap: wrap; gap: 4px; }
.nv-body { margin-top: 8px; }
.nv-body .table, .nv-page .table { margin-bottom: 6px; background: #fff; font-size: 12.5px; }
.nv-body .table > thead > tr > th, .nv-page .table > thead > tr > th { background: #eef3f8; white-space: nowrap; }
.nv-alert { padding: 6px 10px; margin: 6px 0; font-size: 13px; }
.nv-sub { margin: 8px 0 4px; }
.nv-links .label { display: inline-block; margin: 2px; font-weight: normal; font-size: 12px; }
.nv-kpis { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0; }
.nv-kpi { background: #fff; border: 1px solid #e3e8ee; border-radius: 4px; padding: 6px 10px; min-width: 130px; }
.nv-kpi-v { font-size: 16px; font-weight: 600; }
.nv-kpi-l { font-size: 11.5px; color: #6b7785; }
.nv-kpi.nv-danger .nv-kpi-v { color: #c0392b; }
.nv-kpi.nv-warning .nv-kpi-v { color: #b9770e; }
.nv-kpi.nv-success .nv-kpi-v { color: #1e7b34; }
.nv-spin { animation: nv-spin 1s linear infinite; }
@keyframes nv-spin { to { transform: rotate(360deg); } }
.nv-page .nv-tools { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 6px 0 12px; }
.nv-page .nv-tools .form-control { width: auto; display: inline-block; }
@media (max-width: 600px) { .nv-actions .btn { width: 100%; text-align: left; } .nv-kpi { flex: 1 1 45%; min-width: 0; } }
/* thông báo nổi của các module (#hqms-toasts) trên trang AppGini - apps.css chỉ nạp ở trang /apps */
#hqms-toasts { position: fixed; top: 70px; right: 16px; z-index: 20000; width: 380px; max-width: calc(100% - 32px); }
#hqms-toasts .hqms-toast { box-shadow: 0 4px 14px rgba(0,0,0,.18); margin-bottom: 8px; white-space: pre-line; }
