:root{
  --bg:#f4f7fb;
  --card:#ffffff;
  --primary:#2c3e50;
  --primary-hover:#1a252f;
  --border:#e5e7eb;
  --text:#1f2937;
  --muted:#6b7280;
  --success:#16a34a;
  --warning:#f59e0b;
}

/* GLOBAL */
body{
  font-family: Inter, Arial, sans-serif;
  background:var(--bg);
  margin:0;
  padding:20px;
  color:var(--text);
}

/* CARD */
.card{
  background:var(--card);
  padding:18px;
  border-radius:14px;
  margin-bottom:15px;
  box-shadow:0 4px 12px rgba(0,0,0,0.05);
}

/* FLEX */
.row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

/* INPUT */
input{
  padding:8px 10px;
  font-size:14px;
  border:1px solid var(--border);
  border-radius:6px;
  outline:none;
  transition:0.2s;
}
input:focus{
  border-color:var(--primary);
  box-shadow:0 0 0 2px rgba(44,62,80,0.1);
}

/* BUTTON */
button{
  padding:8px 14px;
  font-size:14px;
  background:var(--primary);
  color:#fff;
  border:none;
  border-radius:6px;
  cursor:pointer;
  transition:0.2s;
}
button:hover{
  background:var(--primary-hover);
}
button:disabled{
  opacity:0.4;
  cursor:not-allowed;
}

/* TEXT */
.muted{
  color:var(--muted);
  font-style:italic;
}

/* HEADER */
.header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  margin-bottom:15px;
}
.header img{
  height:55px;
}
.header h3{
  margin:0;
}

/* LOGIN */
.topbar{
  display:flex;
  justify-content:flex-end;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}
.login-row input{
  width:140px;
}

/* TABLE */
.table-wrapper{
  overflow-x:auto;
  max-height:500px;
  border-radius:10px;
  border:1px solid var(--border);
}

/* TABLE BASE */
#prodTable{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}

/* HEADER */
#prodTable th{
  position:sticky;
  top:0;
  background:#f9fafb;
  z-index:2;
  border-bottom:1px solid var(--border);
  padding:10px;
  text-align:left;
  font-weight:600;
  color:#374151;
}

/* CELL */
#prodTable td{
  padding:10px;
  border-bottom:1px solid var(--border);
}

/* ROW */
#prodTable tbody tr{
  transition:0.2s;
}
#prodTable tbody tr:hover{
  background:#f1f5f9;
}

/* ZEBRA */
#prodTable tbody tr:nth-child(even){
  background:#fcfcfc;
}

/* IMAGE */
img.product-img{
  width:48px;
  height:48px;
  object-fit:cover;
  border-radius:6px;
  border:1px solid var(--border);
}

/* NUMBER */
.num{
  text-align:right;
  font-variant-numeric: tabular-nums;
}

/* HIGHLIGHT */
.highlight{
  background:#fff7ed !important;
  transition:0.4s;
}

/* SORT ICON */
.sorted-asc::after{
  content:" ▲";
  font-size:11px;
}
.sorted-desc::after{
  content:" ▼";
  font-size:11px;
}

/* STATUS BADGE (opsional kalau mau dipakai nanti) */
.badge{
  padding:3px 8px;
  border-radius:999px;
  font-size:12px;
  font-weight:500;
}
.badge-success{
  background:#dcfce7;
  color:#166534;
}
.badge-warning{
  background:#fef3c7;
  color:#92400e;
}

/* RESPONSIVE */
@media(max-width:768px){
  body{padding:10px;}
  #prodTable{font-size:12px;}
  #prodTable th,#prodTable td{padding:6px;}
  img.product-img{width:38px;height:38px;}
}