.gelato-front-wrap { max-width: 760px; margin: 30px auto; padding: 16px; }
.gelato-hero-card { background: linear-gradient(135deg, #fff8fb 0%, #fff 45%, #f6fbff 100%); border-radius: 28px; box-shadow: 0 20px 50px rgba(35,47,62,.10); padding: 28px; border: 1px solid #f0e7ef; }
.gelato-badge { display: inline-block; padding: 8px 14px; border-radius: 999px; background: #1f2937; color: #fff; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; }
.gelato-hero-card h2 { font-size: 34px; margin: 16px 0 8px; }
.gelato-hero-card p { color: #5b6678; }
.gelato-stats { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; margin: 20px 0; }
.gelato-stat-card { background: #fff; border-radius: 22px; padding: 18px; box-shadow: 0 10px 25px rgba(0,0,0,.05); }
.gelato-stat-card span { display:block; color:#758195; font-size:14px; }
.gelato-stat-card strong { display:block; font-size:30px; margin-top:8px; }
.gelato-progress-shell { background: #fff; padding: 18px; border-radius: 22px; box-shadow: 0 10px 25px rgba(0,0,0,.05); margin-bottom: 18px; }
.gelato-progress-meta { display:flex; justify-content:space-between; gap: 14px; margin-bottom: 10px; }
.gelato-progress-bar { height: 14px; background:#edf2f7; border-radius:999px; overflow:hidden; }
.gelato-progress-bar span { display:block; height:100%; width:0; background: linear-gradient(90deg, #ff7eb3, #7ecbff); transition: width .25s ease; }
.gelato-actions { display:flex; gap:12px; flex-wrap:wrap; margin-bottom: 16px; }
.gelato-btn-primary, .gelato-btn-secondary { border:none; border-radius:999px; padding:14px 18px; font-weight:700; cursor:pointer; }
.gelato-btn-primary { background:#111827; color:#fff; }
.gelato-btn-secondary { background:#edf2f7; color:#111827; }
.gelato-reader { width:100%; max-width: 360px; margin: 10px auto 0; }
.gelato-status-message { min-height: 24px; margin-bottom: 10px; font-weight: 600; }
.gelato-status-message.is-error { color:#b91c1c; }
.gelato-status-message.is-success { color:#047857; }
.gelato-status-message.is-info { color:#1d4ed8; }
.gelato-voucher-box { margin-top: 20px; background:#fff; padding: 22px; border-radius:22px; box-shadow: 0 10px 25px rgba(0,0,0,.05); }
#gelato-voucher-qr { margin: 14px 0; }
@media (max-width: 640px) { .gelato-stats { grid-template-columns: 1fr; } .gelato-progress-meta { flex-direction:column; } }
