/* Nhận diện NND: theo giaydankinhnnd.com – cam #ef3a09, nền trắng, chữ #1e1e1e, font Manrope */
:root {
  --nnd: #ef3a09;
  --nnd-dark: #c92f05;
  --nnd-soft: #fff1ec;
  --nnd-border: #ffd2c6;
  --ink: #1e1e1e;
  --muted: #6b6f76;
  --bg: #f7f7f7;
  --sidebar-w: 236px;
  --bs-primary: #ef3a09;
  --bs-primary-rgb: 239, 58, 9;
  --bs-link-color: #ef3a09;
  --bs-link-color-rgb: 239, 58, 9;
  --bs-link-hover-color: #c92f05;
  --bs-link-hover-color-rgb: 201, 47, 5;
  --bs-body-font-family: 'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --bs-body-color: #1e1e1e;
  --bs-border-radius: .5rem;
  --bs-focus-ring-color: rgba(239, 58, 9, .25);
}
body { font-size: .925rem; background: var(--bg); color: var(--ink); }

/* Nút & thành phần chính dùng màu cam */
.btn-primary { --bs-btn-bg: var(--nnd); --bs-btn-border-color: var(--nnd); --bs-btn-hover-bg: var(--nnd-dark); --bs-btn-hover-border-color: var(--nnd-dark);
  --bs-btn-active-bg: var(--nnd-dark); --bs-btn-active-border-color: var(--nnd-dark); --bs-btn-disabled-bg: var(--nnd); --bs-btn-disabled-border-color: var(--nnd); font-weight: 600; }
.btn-outline-primary { --bs-btn-color: var(--nnd); --bs-btn-border-color: var(--nnd); --bs-btn-hover-bg: var(--nnd); --bs-btn-hover-border-color: var(--nnd);
  --bs-btn-active-bg: var(--nnd-dark); --bs-btn-active-border-color: var(--nnd-dark); font-weight: 600; }
.btn-dark { --bs-btn-bg: #333; --bs-btn-border-color: #333; }
.btn { border-radius: 999px; }
.btn-link { border-radius: 0; }
.form-control:focus, .form-select:focus, .form-check-input:focus { border-color: var(--nnd); box-shadow: 0 0 0 .2rem rgba(239, 58, 9, .15); }
.form-check-input:checked { background-color: var(--nnd); border-color: var(--nnd); }
.page-link { color: var(--nnd); }
.active > .page-link, .page-link.active { background-color: var(--nnd); border-color: var(--nnd); }
.nav-tabs .nav-link { color: var(--muted); }
.nav-tabs .nav-link.active { color: var(--nnd); border-bottom-color: #fff; font-weight: 600; }
.text-primary { color: var(--nnd) !important; }
.bg-primary { background-color: var(--nnd) !important; }

/* Thanh menu trái: nền trắng, logo, mục đang chọn màu cam */
.sidebar { width: var(--sidebar-w); flex: 0 0 var(--sidebar-w); min-height: 100vh; display: flex; flex-direction: column; background: #fff; border-right: 1px solid #ececec; }
@media (min-width: 992px) { .sidebar { position: sticky; top: 0; height: 100vh; overflow-y: auto; } }
.sidebar .brand { padding: 1rem 1.1rem .75rem; border-bottom: 1px solid #f0f0f0; }
.sidebar .brand img { max-width: 150px; height: auto; display: block; }
.sidebar .brand .branch { font-size: .75rem; color: var(--muted); margin-top: .35rem; font-weight: 600; }
.sidebar .nav-link { color: #3b3f45; border-radius: .5rem; padding: .45rem .75rem; font-weight: 500; }
.sidebar .nav-link i { color: #9aa0a6; }
.sidebar .nav-link:hover { background: var(--nnd-soft); color: var(--nnd); }
.sidebar .nav-link:hover i { color: var(--nnd); }
.sidebar .nav-link.active { background: var(--nnd); color: #fff; font-weight: 600; box-shadow: 0 2px 8px rgba(239, 58, 9, .25); }
.sidebar .nav-link.active i { color: #fff; }
.sidebar .nav-section { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; color: var(--nnd); font-weight: 700; padding: 1rem .75rem .3rem; }
.sidebar .user-box { border-top: 1px solid #f0f0f0; padding: .9rem 1.1rem; font-size: .85rem; }
.sidebar .user-box a, .sidebar .user-box .btn-link { color: var(--muted); text-decoration: none; }
.sidebar .user-box a:hover, .sidebar .user-box .btn-link:hover { color: var(--nnd); }
.topbar-mobile { background: #fff; border-bottom: 3px solid var(--nnd); }
.topbar-mobile img { height: 30px; }

.main { min-width: 0; }
.page-head { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
.page-head h1 { font-size: 1.35rem; margin: 0; font-weight: 800; letter-spacing: -.01em; }
.page-head h1::before { content: ''; display: inline-block; width: 4px; height: 1.1em; background: var(--nnd); border-radius: 2px; margin-right: .55rem; vertical-align: -.15em; }
.card { border: 1px solid #eee; border-radius: .75rem; box-shadow: 0 1px 2px rgba(0, 0, 0, .04); }
.card-header { border-bottom: 1px solid #f0f0f0; border-radius: .75rem .75rem 0 0 !important; }
.table { font-size: .875rem; --bs-table-hover-bg: var(--nnd-soft); }
.table thead th { background: #fafafa; white-space: nowrap; font-weight: 700; color: #444; border-bottom: 2px solid var(--nnd-border); }
.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.kpi { border-top: 3px solid var(--nnd); }
.kpi .label { font-size: .72rem; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; font-weight: 600; }
.kpi .value { font-size: 1.4rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.items-table input, .items-table select { min-width: 80px; }
.items-table .product-cell { min-width: 260px; position: relative; }
.lookup-list { position: absolute; z-index: 1050; left: 0; right: 0; top: 100%; max-height: 260px; overflow-y: auto; }
.badge-status-pending { background: #fff3cd; color: #8a6100; }
.badge-status-done { background: #e3f3e6; color: #1d6b35; }
.badge-status-cancelled { background: #eee; color: #666; }
.filter-bar .form-control, .filter-bar .form-select { min-width: 140px; }

/* Trang đăng nhập */
.login-wrap { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(160deg, #fff 0%, #fff 55%, var(--nnd-soft) 100%); }
.login-card { width: 100%; max-width: 400px; border-top: 4px solid var(--nnd); }
.login-card img.logo { max-width: 190px; display: block; margin: 0 auto .75rem; }

@media print { .sidebar, .no-print, .navbar, .topbar-mobile { display: none !important; } .main { padding: 0 !important; } }
