body{margin:0;font-family:Arial;background:#1f1f1f;color:#fff}
header{padding:10px;text-align:center}

.btn{padding:8px 12px;border:none;border-radius:6px;margin:3px}
.primary{background:#0d6efd;color:#fff}
.success{background:#198754;color:#fff}
.danger{background:#dc3545;color:#fff}
.gray{background:#555;color:#fff}

.container{padding:10px}
.flex{display:flex;flex-wrap:wrap}

.card{
  background:#2b2b2b;
  border-radius:12px;
  padding:10px;
  margin:5px;
  width:140px;
  text-align:center;
}
.card img{
  width:100%;
  height:110px;
  object-fit:cover;
  border-radius:10px;
  cursor:pointer;
}
.card button{
  width:100%;
  margin-top:6px;
}

input,select{
  width:100%;
  padding:8px;
  margin:6px 0;
  border-radius:6px;
  border:none
}

.cart-item{
  background:#2b2b2b;
  border-radius:8px;
  padding:8px;
  margin:6px 0;
  display:flex;
  justify-content:space-between;
  align-items:center
}

.qty button{margin:0 3px}

.bottom{
  position:fixed;
  bottom:0;
  left:0;
  width:100%;
  background:#111;
  padding:10px;
  border-top:1px solid #333
}

/* ================= MODAL ================= */
.modal{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background:rgba(0,0,0,.7);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:9999;
}
.modal.hidden{
  display:none !important;
}
.modal-content{
  background:#222;
  width:90%;
  max-width:400px;
  padding:15px;
  border-radius:10px
}
/* ================= LAYOUT ================= */
.container{
  padding:10px;
  display:flex;
  gap:10px;
}

/* AREA PRODUK SCROLL */
.produk-area{
  flex:1;
  max-height:calc(100vh - 170px); /* header + bottom */
  overflow-y:auto;
  padding-right:5px;
}

/* AREA PESANAN LOCK */
.pesanan-area{
  width:100%;
  max-height:calc(100vh - 170px);
  overflow-y:auto;
  position:sticky;
  top:0;
  background:#1f1f1f;
}

/* MOBILE FIX */
@media (max-width:768px){
  .container{
    flex-direction:column;
  }

  .produk-area{
    max-height:calc(100vh - 320px);
  }

  .pesanan-area{
    max-height:200px;
    position:sticky;
    bottom:120px; /* di atas total */
  }
}

/* ================= HEADER ================= */
.header{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px;
  background:#1f1f1f;
  position:relative;
  z-index:5;
}


/* TOMBOL GARIS 3 */
.menu-btn{
  font-size:22px;
  background:none;
  border:none;
  color:#fff;
  cursor:pointer;
}

/* ================= MENU POPUP ================= */
.menu{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background:rgba(0,0,0,.6);
  display:flex;
  align-items:flex-start;
  z-index:99999; 
}
.menu.hidden{
  display:none !important;
}

.menu-content{
  width:240px;
  background:#222;
  height:100%;
  padding:15px;
  animation:slideMenu .25s ease;
}

@keyframes slideMenu{
  from{transform:translateX(-100%)}
  to{transform:translateX(0)}
}

.menu-content button{
  width:100%;
  margin:6px 0;
}
