.content{
  display:flex;
  gap:20px;
}

.left{
  width:35%;
}

.right{
  width:65%;
}

.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, select{
  width:100%;
  padding:10px;
  border:1px solid #ccc;
  border-radius:6px;
  box-sizing:border-box;
}

.btns{
  display:flex;
  gap:10px;
  margin-top:15px;
}

.app{
  flex:1;
  padding:12px;
  border:none;
  border-radius:4px;
  cursor:pointer;
  color:#fff;
  background:linear-gradient(135deg,#0a3d62,#07517d);
}

.app:disabled{
  opacity:.5;
  cursor:not-allowed;
}

.page-box{
  border:1px solid #ddd;
  border-radius:6px;
  padding:6px;
  background:#fff;
  text-align:center;
}

.page-box img{
  width:100%;
  display:block;
}

.small-btn{
  margin-top:5px;
  width:100%;
  padding:6px;
  font-size:12px;
  cursor:pointer;
  border:none;
  background:#222;
  color:#fff;
  border-radius:4px;
}

.preview-wrap{
  position:relative;
}

#preview{
  border: 1px solid #ddd;
  border-radius: 8px;
  background: #fff;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:10px;
  max-height:75vh;
  min-height: 30vh;
  overflow:auto;
  padding: 10px;
}

.processing-overlay{
  position:absolute;
  top:0;left:0;right:0;bottom:0;
  background:rgba(255,255,255,.88);
  border-radius:8px;
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  font-weight:bold;
  color:#0a3d62;
  z-index:5;
}

.spinner{
  width:34px;
  height:34px;
  border:4px solid #d8e3ea;
  border-top-color:#0a3d62;
  border-radius:50%;
  animation:spin .8s linear infinite;
}

@keyframes spin{
  to{ transform:rotate(360deg); }
}

@media(max-width:768px){
  .content{
    flex-direction:column;
  }
  .left,.right{
    width:100%;
  }
  #preview{
    grid-template-columns:repeat(2,1fr);
  }
}