/*!
 * 📦 SB Admin 2 - Tema Pabrik Kotak (Inventory)
 * Versi: Unminified + Industrial Theme
 * Berdasarkan: Bootstrap 4.3.1 & SB Admin 2 v4.0.6
 */

:root {
  /* 🎨 Palet Industrial Pabrik */
  --blue: #2C3E50;       /* Baja gelap (primary) */
  --primary: #2C3E50;
  --primary-hover: #1A252F;
  
  --indigo: #6610f2;
  --purple: #6f42c1;
  --pink: #e83e8c;
  --red: #C0392B;        /* Merah alert/stok habis */
  --orange: #fd7e14;
  --yellow: #F39C12;     /* Kuning safety/peringatan */
  --green: #27AE60;      /* Hijau stok aman */
  --teal: #1abc9c;
  --cyan: #2980B9;       /* Biru produksi */
  
  --white: #fff;
  --gray: #636E72;
  --gray-dark: #2D3436;
  
  --secondary: #8D6E63;  /* Coklat karton/kayu */
  --success: #27AE60;
  --info: #2980B9;
  --warning: #F39C12;
  --danger: #C0392B;
  --light: #F5F7FA;      /* Latar pabrik bersih */
  --dark: #34495E;       /* Baja tua */
  
  --breakpoint-xs: 0;
  --breakpoint-sm: 576px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 992px;
  --breakpoint-xl: 1200px;
  
  --font-family-sans-serif: "Inter", "Nunito", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

*, ::after, ::before { box-sizing: border-box; }
html { font-family: sans-serif; line-height: 1.15; -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--font-family-sans-serif); font-size: 1rem; font-weight: 400; line-height: 1.5; color: var(--gray-dark); text-align: left; background-color: var(--light); }

/* 🔘 Tombol Utama */
.btn { display: inline-block; font-weight: 500; text-align: center; vertical-align: middle; user-select: none; border: 1px solid transparent; padding: .375rem .75rem; font-size: 1rem; line-height: 1.5; border-radius: .35rem; transition: all .15s ease-in-out; }
.btn-primary { color: #fff; background-color: var(--primary); border-color: var(--primary); }
.btn-primary:hover, .btn-primary:focus { background-color: var(--primary-hover); border-color: var(--primary-hover); box-shadow: 0 0 0 .2rem rgba(44,62,80,.3); }
.btn-secondary { color: #fff; background-color: var(--secondary); border-color: var(--secondary); }
.btn-secondary:hover { background-color: #795548; border-color: #795548; }
.btn-success { color: #fff; background-color: var(--success); border-color: var(--success); }
.btn-warning { color: #111; background-color: var(--warning); border-color: var(--warning); }
.btn-danger { color: #fff; background-color: var(--danger); border-color: var(--danger); }
.btn-outline-primary { color: var(--primary); border-color: var(--primary); }
.btn-outline-primary:hover { color: #fff; background-color: var(--primary); border-color: var(--primary); }

/* 📦 Card & Dashboard Widget */
.card { position: relative; display: flex; flex-direction: column; min-width: 0; word-wrap: break-word; background-color: #fff; background-clip: border-box; border: 1px solid #d1d3e2; border-radius: .5rem; box-shadow: 0 2px 8px rgba(0,0,0,.05); }
.card-header { padding: .75rem 1.25rem; margin-bottom: 0; background-color: #f8f9fc; border-bottom: 1px solid #d1d3e2; font-weight: 600; color: var(--gray); text-transform: uppercase; letter-spacing: .5px; font-size: .8rem; }
.border-left-primary { border-left: .25rem solid var(--primary) !important; }
.border-left-success { border-left: .25rem solid var(--success) !important; }
.border-left-warning { border-left: .25rem solid var(--warning) !important; }
.border-left-danger { border-left: .25rem solid var(--danger) !important; }
.border-left-info { border-left: .25rem solid var(--info) !important; }

/* 📊 Tabel Inventory (Optimized) */
.table { width: 100%; margin-bottom: 1rem; color: var(--gray-dark); border-collapse: collapse; }
.table thead th { vertical-align: bottom; border-bottom: 2px solid #d1d3e2; background-color: var(--dark); color: #fff; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; font-size: .8rem; position: sticky; top: 0; z-index: 2; }
.table td, .table th { padding: .75rem; border-top: 1px solid #e3e6f0; vertical-align: middle; }
.table-striped tbody tr:nth-of-type(odd) { background-color: rgba(44,62,80,.03); }
.table-hover tbody tr:hover { background-color: rgba(44,62,80,.06); }
.table-bordered td, .table-bordered th { border: 1px solid #d1d3e2; }

/* 🧭 Sidebar & Topbar */
.sidebar { width: 6.5rem; min-height: 100vh; background: linear-gradient(180deg, var(--dark) 0%, #1a252f 100%); }
.sidebar .nav-item .nav-link { color: rgba(255,255,255,.8); padding: .75rem 1rem; font-size: .85rem; }
.sidebar .nav-item .nav-link:hover { color: #fff; background: rgba(255,255,255,.05); }
.sidebar .nav-item.active .nav-link { color: #fff; background: rgba(243,156,18,.15); border-left: 4px solid var(--warning); font-weight: 600; }
.sidebar .sidebar-brand { height: 4.375rem; color: #fff; text-decoration: none; font-size: 1rem; font-weight: 800; padding: 1.5rem 1rem; text-align: center; text-transform: uppercase; letter-spacing: .05rem; }
.topbar { height: 4.375rem; background-color: var(--primary); box-shadow: 0 2px 8px rgba(0,0,0,.1); }
.topbar .nav-item .nav-link { color: rgba(255,255,255,.9); }
.topbar .nav-item .nav-link:hover { color: #fff; }

/* 📝 Form Input */
.form-control { display: block; width: 100%; padding: .375rem .75rem; font-size: 1rem; line-height: 1.5; color: var(--gray-dark); background-color: #fff; background-clip: padding-box; border: 1px solid #d1d3e2; border-radius: .35rem; transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out; }
.form-control:focus { color: var(--gray-dark); background-color: #fff; border-color: var(--warning); outline: 0; box-shadow: 0 0 0 .2rem rgba(243,156,18,.25); }
.custom-select { height: calc(1.5em + .75rem + 2px); padding: .375rem 1.75rem .375rem .75rem; font-size: 1rem; color: var(--gray-dark); background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%2334495e' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px #fff; border: 1px solid #d1d3e2; border-radius: .35rem; }

/* 🏷️ Badge & Alert */
.badge { display: inline-block; padding: .25em .4em; font-size: 75%; font-weight: 700; line-height: 1; text-align: center; white-space: nowrap; vertical-align: baseline; border-radius: .35rem; }
.badge-success { background-color: var(--success); color: #fff; }
.badge-warning { background-color: var(--warning); color: #111; }
.badge-danger { background-color: var(--danger); color: #fff; }
.badge-info { background-color: var(--info); color: #fff; }
.badge-secondary { background-color: var(--secondary); color: #fff; }

.alert-success { color: #0f6848; background-color: #d2f4e8; border-color: #bff0de; }
.alert-warning { color: #806520; background-color: #fdf3d8; border-color: #fceec9; }
.alert-danger { color: #78261f; background-color: #fadbd8; border-color: #f8ccc8; }

/* 🖨️ Print Friendly (Laporan Stok) */
@media print {
  *, ::after, ::before { text-shadow: none !important; box-shadow: none !important; }
  body { background: #fff; color: #000; margin: 0; padding: 20px; }
  .sidebar, .topbar, .btn, .no-print, footer, .scroll-to-top { display: none !important; }
  .card { border: 1px solid #333; box-shadow: none; margin-bottom: 15px; page-break-inside: avoid; }
  .table th, .table td { border: 1px solid #333 !important; background: #fff !important; color: #000 !important; }
  .badge { border: 1px solid #333 !important; color: #000 !important; background: #fff !important; }
  .table thead { display: table-header-group; }
}

/* 📌 Utility Overrides */
.text-primary { color: var(--primary) !important; }
.text-success { color: var(--success) !important; }
.text-warning { color: var(--warning) !important; }
.text-danger { color: var(--danger) !important; }
.text-info { color: var(--info) !important; }
.bg-primary { background-color: var(--primary) !important; }
.bg-light { background-color: var(--light) !important; }
.bg-gradient-primary { background-color: var(--primary); background-image: linear-gradient(180deg, var(--primary) 10%, #1a252f 100%); }
.bg-gradient-secondary { background-color: var(--secondary); background-image: linear-gradient(180deg, var(--secondary) 10%, #6d4c41 100%); }
.bg-gradient-success { background-color: var(--success); background-image: linear-gradient(180deg, var(--success) 10%, #219653 100%); }
.bg-gradient-warning { background-color: var(--warning); background-image: linear-gradient(180deg, var(--warning) 10%, #e67e22 100%); }
.bg-gradient-danger { background-color: var(--danger); background-image: linear-gradient(180deg, var(--danger) 10%, #a93226 100%); }
.bg-gradient-info { background-color: var(--info); background-image: linear-gradient(180deg, var(--info) 10%, #1f618d 100%); }
.bg-gradient-dark { background-color: var(--dark); background-image: linear-gradient(180deg, var(--dark) 10%, #1c2833 100%); }

/* Layout Core (SB Admin 2 compatible) */
html { position: relative; min-height: 100%; }
#wrapper { display: flex; }
#wrapper #content-wrapper { background-color: var(--light); width: 100%; overflow-x: hidden; }
#wrapper #content-wrapper #content { flex: 1 0 auto; }
.container, .container-fluid { padding-left: 1.5rem; padding-right: 1.5rem; }
footer.sticky-footer { padding: 2rem 0; background: #fff; border-top: 1px solid #d1d3e2; }