
.content{
  display:flex;
  gap:20px;
}

.left,.right{
  width:50%;
}

.section{
  background:#fafafa;
  padding:15px;
  border-radius:10px;
  border:1px solid #eee;
}

label{
  font-size:13px;
  font-weight:bold;
  display:block;
  margin-bottom:8px;
}

input{
  width:100%;
  padding:10px;
  border-radius:6px;
  border:1px solid #ccc;
  box-sizing:border-box;
}

.btns{
  display:flex;
  gap:10px;
  margin-top:15px;
}

.app{
  flex:1;
  padding:12px;
  border:none;
  border-radius:5px;
  cursor:pointer;
  color:#fff;
  background:linear-gradient(135deg,#8d0505,#e90707);
}

.app:disabled{
  opacity:.5;
  cursor:not-allowed;
}

.app.secondary{
  background:#fff;
  color:#8d0505;
  border:1px solid #8d0505;
}

#output{
  white-space:pre-wrap;
  font-size:14px;
  min-height:20px;
}

.copied{
  font-size:12px;
  color:#8d0505;
  margin-left:8px;
}

/* thumbnail preview + loading effect */
.thumb-wrap{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  border-radius:8px;
  overflow:hidden;
  background:#eee;
}

.thumb-wrap .skeleton{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,#eee 25%,#f5f5f5 50%,#eee 75%);
  background-size:200% 100%;
  animation:shimmer 1.4s infinite;
}

.thumb-wrap img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  opacity:0;
  transition:opacity .3s ease;
}

.thumb-wrap img.loaded{
  opacity:1;
}

@keyframes shimmer{
  0%{ background-position:-200% 0; }
  100%{ background-position:200% 0; }
}

/* responsive */
@media(max-width:768px){
  .content{
    flex-direction:column;
  }
  .left,.right{
    width:100%;
  }
}