body {
  margin: 0;
  font-family: Arial, sans-serif;
  background: url("background.jpg") center/cover no-repeat;
  display: flex; justify-content: center; align-items: center;
  min-height: 100vh;
}
.card {
  background: rgba(255, 255, 255, 0.15);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  padding: 30px;
  border-radius: 16px;
  max-width: 600px; width: 100%;
  border: 1px solid rgba(255, 255, 255, 0.3);
  box-shadow: 0 8px 32px rgba(0,0,0,0.3);
  opacity: 95%;
}
.card h1 {font-size: 24px; font-weight: 800; color:#1d79f2; margin:0 0 8px; text-align:center;}
.card p {font-size: 14px; color:#3f7fcf; margin:0 0 20px; text-align:center;}
.form-group, .input-row {margin-bottom:16px;}
label {display:block; font:600 14px Arial; margin-bottom:4px; color:#444;}
.input-row {display:flex; gap:10px;}
input, textarea, select {
  width:100%; padding:10px 12px; border:1px solid #ccc; border-radius:8px;
  font-size:14px; box-sizing:border-box; transition:.2s;
}
input:focus,textarea:focus,select:focus {border-color:#1d79f2; box-shadow:0 0 6px rgba(29,121,242,0.3); outline:none;}
textarea {resize:none; height:80px;}
.upload-section {margin-bottom:16px;}
.upload-section button {
  background:#1d79f2; color:#fff; border:0; border-radius:30px;
  padding:8px 16px; font-size:13px; font-weight:600; cursor:pointer;
  transition:transform .15s;
}
.upload-section button:hover {transform:scale(1.05);}
.upload-section small {font-size:12px; color:#666;}
.preview {display:flex; flex-wrap:wrap; gap:8px; margin-top:8px;}
.preview img {width:90px; height:70px; object-fit:cover; border-radius:6px; border:1px solid #ccc;}
.btn {
  background:linear-gradient(135deg,#1d79f2,#0f5fd8); color:#fff; border:0;
  width:240px; padding:12px 0; border-radius:30px; font:700 14px Arial;
  cursor:pointer; display:block; margin:18px auto; transition:transform .15s;
}
.btn:hover {transform:scale(1.05);}
.btn.loading {pointer-events:none; opacity:.8;}
.spinner {
  border:3px solid rgba(255,255,255,0.4); border-top:3px solid #fff;
  border-radius:50%; width:16px; height:16px; display:inline-block;
  animation:spin 1s linear infinite; margin-right:6px; vertical-align:middle;
}
@keyframes spin {to{transform:rotate(360deg);}}
.footer-text {text-align:center; font-size:13px; margin-top:12px;}
.footer-text a {color:#1d79f2; font-weight:600; text-decoration:none;}
input[type="file"]{display:none;}
.modal {
  display:none; position:fixed; z-index:1000; inset:0;
  background:rgba(0,0,0,0.6); justify-content:center; align-items:flex-start;
  overflow-y:auto; padding:50px 0;
}
.modal-content {
  background:#fff; padding:20px; border-radius:16px;
  text-align:center; max-width:500px; width:90%; margin:auto;
  box-shadow:0 6px 20px rgba(0,0,0,0.2);
}
.logo-img {width:160px; margin:0 auto -10px;}
h3 {margin:8px 0;font-size:18px;}
p {margin:4px 0;font-size:14px;}
#ticketNumber {
  border:2px dashed #1d79f2; font:700 24px Arial;
  letter-spacing:6px; color:#1d79f2;
  margin:15px 0; padding:10px;
}
#ticketDate, #ticketCode, #ticketTypeDisplay {font-size:13px;color:#444;margin:2px 0;}
.warning {color:red;font-size:13px;margin:8px 0;}
#qrcode {display:flex;justify-content:center;align-items:center;margin:20px auto;width:100%;}
.btn-ticket {
  background:#1d79f2; border:0; color:#fff;
  border-radius:30px; padding:12px 20px;
  margin:6px auto; cursor:pointer;
  width:220px;
  font-weight:600; font-size:14px;
  transition:transform .15s;
}
.btn-ticket:hover {transform:scale(1.05);}
.toast {
  visibility:hidden; min-width:200px;
  background:rgba(29,121,242,0.9); color:#fff;
  text-align:center; border-radius:30px; padding:10px 16px;
  position:fixed; left:50%; bottom:30px; transform:translateX(-50%);
  font:600 13px Arial; opacity:0; transition:.3s;
}
.toast.show {visibility:visible; opacity:1; bottom:50px;}
@media (max-width: 600px) {
  .card {padding: 20px; margin: 10px; border-radius: 12px;}
  .card h1 {font-size: 1.3rem;}
  .input-row {flex-direction: column;}
  input, textarea, select {font-size: 0.9rem;}
  .btn {width: 100%; font-size: 1rem;}
  .preview img {width: 70px; height: 60px;}
}