:root {
  --gn-primary: #b3123a;
  --gn-primary-dark: #8c0d2c;
  --gn-primary-soft: #fbe9ee;
  --gn-gold: #c99a2e;
  --gn-sidebar: #1f1418;
  --gn-sidebar-text: #cdbfc3;
  --gn-bg: #f5f3f4;
  --gn-border: #e7e1e3;
  --bs-primary: var(--gn-primary);
  --bs-primary-rgb: 179, 18, 58;
  --bs-link-color: var(--gn-primary);
  --bs-link-color-rgb: 179, 18, 58;
  --bs-link-hover-color: var(--gn-primary-dark);
  --bs-body-font-family: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --bs-body-font-size: .9rem;
}

body { background: var(--gn-bg); min-height: 100vh; }
a { text-decoration: none; }

/* Buttons & form accents */
.btn-primary {
  --bs-btn-bg: var(--gn-primary); --bs-btn-border-color: var(--gn-primary);
  --bs-btn-hover-bg: var(--gn-primary-dark); --bs-btn-hover-border-color: var(--gn-primary-dark);
  --bs-btn-active-bg: var(--gn-primary-dark); --bs-btn-active-border-color: var(--gn-primary-dark);
  --bs-btn-disabled-bg: var(--gn-primary); --bs-btn-disabled-border-color: var(--gn-primary);
}
.btn-outline-primary {
  --bs-btn-color: var(--gn-primary); --bs-btn-border-color: var(--gn-primary);
  --bs-btn-hover-bg: var(--gn-primary); --bs-btn-hover-border-color: var(--gn-primary);
  --bs-btn-active-bg: var(--gn-primary-dark); --bs-btn-active-border-color: var(--gn-primary-dark);
}
.form-control:focus, .form-select:focus, .form-check-input:focus {
  border-color: #e38aa0; box-shadow: 0 0 0 .2rem rgba(179, 18, 58, .15);
}
.form-check-input:checked { background-color: var(--gn-primary); border-color: var(--gn-primary); }
.text-primary { color: var(--gn-primary) !important; }
.bg-primary-soft { background: var(--gn-primary-soft); }
.text-bg-purple { background-color: #6f42c1 !important; color: #fff !important; }
.form-label { font-weight: 500; margin-bottom: .3rem; }
.form-label.required::after { content: " *"; color: var(--bs-danger); }
.filter-bar.row { margin-left: 0; margin-right: 0; }

/* Layout */
.admin-sidebar {
  position: fixed; inset: 0 auto 0 0; width: 250px; background: var(--gn-sidebar);
  color: var(--gn-sidebar-text); overflow-y: auto; z-index: 1040; transition: transform .2s ease;
}
.admin-sidebar .brand {
  display: flex; align-items: center; gap: .6rem; padding: 1.1rem 1.25rem; color: #fff;
  font-weight: 700; font-size: 1.1rem; border-bottom: 1px solid rgba(255,255,255,.06);
}
.admin-sidebar .brand .logo {
  width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center;
  background: linear-gradient(135deg, var(--gn-primary), var(--gn-gold)); color: #fff;
}
.admin-sidebar .nav-section {
  font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; color: #8d7a80;
  padding: 1rem 1.25rem .35rem;
}
.admin-sidebar .nav-link {
  color: var(--gn-sidebar-text); padding: .5rem 1.25rem; display: flex; align-items: center; gap: .7rem;
  border-left: 3px solid transparent; font-size: .87rem;
}
.admin-sidebar .nav-link i { font-size: 1rem; width: 1.1rem; }
.admin-sidebar .nav-link:hover { color: #fff; background: rgba(255,255,255,.04); }
.admin-sidebar .nav-link.active {
  color: #fff; background: rgba(179, 18, 58, .25); border-left-color: var(--gn-primary);
}
.admin-sidebar .nav-link .badge { margin-left: auto; }

.admin-main { margin-left: 250px; min-height: 100vh; display: flex; flex-direction: column; }
.admin-topbar {
  position: sticky; top: 0; z-index: 1030; background: #fff; border-bottom: 1px solid var(--gn-border);
  height: 60px; display: flex; align-items: center; padding: 0 1.5rem; gap: 1rem;
}
.admin-content { padding: 1.5rem; flex: 1; }
.admin-footer { padding: 1rem 1.5rem; color: #8d7a80; font-size: .8rem; }

@media (max-width: 991.98px) {
  .admin-sidebar { transform: translateX(-100%); }
  body.sidebar-open .admin-sidebar { transform: none; box-shadow: 0 0 40px rgba(0,0,0,.3); }
  .admin-main { margin-left: 0; }
  .admin-content { padding: 1rem; }
}

/* Cards & tables */
.card { border: 1px solid var(--gn-border); border-radius: .75rem; box-shadow: 0 1px 2px rgba(31, 20, 24, .04); }
.card-header { background: #fff; border-bottom: 1px solid var(--gn-border); font-weight: 600; padding: .85rem 1.1rem; }
.card-header:first-child { border-radius: .75rem .75rem 0 0; }
.table { --bs-table-hover-bg: #fbf7f8; margin-bottom: 0; }
.table > :not(caption) > * > * { padding: .7rem .85rem; vertical-align: middle; }
.table thead th {
  font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: #7a6a6f;
  background: #faf8f9; font-weight: 600; white-space: nowrap;
}
.table-card .card-body { padding: 0; }
.thumb { width: 44px; height: 44px; object-fit: cover; border-radius: .5rem; background: #f1eced; }
.thumb-lg { width: 88px; height: 88px; }

.page-header { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .75rem; margin-bottom: 1.25rem; }
.page-header h1 { font-size: 1.35rem; font-weight: 700; margin: 0; }
.page-header .breadcrumb { font-size: .8rem; margin: .15rem 0 0; }

.stat-card .icon {
  width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font-size: 1.25rem;
}
.stat-card .value { font-size: 1.45rem; font-weight: 700; line-height: 1.2; }
.stat-card .label { color: #7a6a6f; font-size: .8rem; }

.filter-bar { background: #fff; border: 1px solid var(--gn-border); border-radius: .75rem; padding: .85rem; margin-bottom: 1rem; }
.empty-state { text-align: center; padding: 3rem 1rem; color: #8d7a80; }
.empty-state i { font-size: 2.2rem; display: block; margin-bottom: .5rem; color: #cdbfc3; }

.image-preview { max-width: 160px; max-height: 120px; border-radius: .5rem; border: 1px solid var(--gn-border); object-fit: cover; }
.ck-editor__editable { min-height: 220px; }
.timeline { list-style: none; padding: 0; margin: 0; }
.timeline li { position: relative; padding: 0 0 1rem 1.4rem; border-left: 2px solid var(--gn-border); margin-left: .4rem; }
.timeline li:last-child { border-left-color: transparent; }
.timeline li::before {
  content: ""; position: absolute; left: -7px; top: 2px; width: 12px; height: 12px; border-radius: 50%;
  background: #fff; border: 2px solid var(--gn-primary);
}
.qty-positive { color: var(--bs-success); font-weight: 600; }
.qty-negative { color: var(--bs-danger); font-weight: 600; }

.login-wrap { min-height: 100vh; display: grid; place-items: center; background: linear-gradient(135deg, #2a1a20, #6b0f28); padding: 1rem; }
.login-card { width: 100%; max-width: 420px; }

@media print {
  .admin-sidebar, .admin-topbar, .admin-footer, .no-print { display: none !important; }
  .admin-main { margin-left: 0; }
  body { background: #fff; }
  .card { border: none; box-shadow: none; }
}
