/* Veltrion Web Platform Phase 12 · Coupon / Event Reward */
.vweb-coupon-panel { position: relative; }
.vweb-coupon-layout,
.vweb-coupon-page-grid { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(0, 1.4fr); gap: 22px; align-items: stretch; }
.vweb-coupon-claim-card,
.vweb-coupon-guide,
.vweb-coupon-campaign,
.vweb-coupon-section { border: 1px solid rgba(255,255,255,.13); background: linear-gradient(145deg, rgba(14,20,34,.9), rgba(7,11,20,.84)); border-radius: 28px; box-shadow: 0 22px 70px rgba(0,0,0,.28); }
.vweb-coupon-claim-card { padding: 26px; min-height: 100%; position: relative; overflow: hidden; }
.vweb-coupon-claim-card::before { content: ""; position: absolute; inset: -40% 35% 20% -20%; background: radial-gradient(circle, rgba(255,211,110,.16), transparent 58%); pointer-events: none; }
.vweb-coupon-label,
.vweb-coupon-campaign > span { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: 999px; background: rgba(255,211,110,.12); color: #ffd36e; border: 1px solid rgba(255,211,110,.25); font-size: 12px; font-weight: 900; letter-spacing: .08em; }
.vweb-coupon-claim-card h3,
.vweb-coupon-claim-card h2 { margin: 16px 0 8px; font-size: clamp(24px, 3vw, 36px); }
.vweb-coupon-claim-card p,
.vweb-coupon-guide,
.vweb-coupon-campaign p { color: #b9c7dc; line-height: 1.7; }
.vweb-coupon-form { display: grid; gap: 12px; margin-top: 18px; position: relative; z-index: 1; }
.vweb-coupon-form input,
.vweb-coupon-form select { width: 100%; min-height: 48px; border: 1px solid rgba(255,255,255,.14); border-radius: 16px; background: rgba(0,0,0,.28); color: #f4f7ff; padding: 0 14px; outline: none; }
.vweb-coupon-form input:focus,
.vweb-coupon-form select:focus { border-color: rgba(255,211,110,.55); box-shadow: 0 0 0 4px rgba(255,211,110,.08); }
.vweb-coupon-form option { color: #111; }
.vweb-coupon-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 16px; position: relative; z-index: 1; }
.vweb-coupon-campaigns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.vweb-coupon-campaign { padding: 22px; min-height: 185px; }
.vweb-coupon-campaign h3 { margin: 14px 0 8px; font-size: 20px; }
.vweb-coupon-campaign small { display: block; margin-top: 12px; color: #7f8ca4; }
.vweb-coupon-campaign.is-loading { opacity: .72; }
.vweb-coupon-guide { padding: 26px; }
.vweb-coupon-guide h2 { margin-top: 0; }
.vweb-coupon-guide ol { margin: 12px 0 0; padding-left: 20px; color: #cdd8eb; line-height: 1.9; }
.vweb-coupon-page .vweb-coupon-section { margin-top: 22px; padding: 24px; }
.vweb-coupon-table-wrap { overflow-x: auto; border: 1px solid rgba(255,255,255,.1); border-radius: 18px; }
.vweb-coupon-table { width: 100%; border-collapse: collapse; min-width: 760px; }
.vweb-coupon-table th,
.vweb-coupon-table td { padding: 13px 14px; border-bottom: 1px solid rgba(255,255,255,.08); text-align: left; color: #dbe7f8; }
.vweb-coupon-table th { color: #ffd36e; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; background: rgba(255,255,255,.04); }
.vadmin-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.vadmin-form-grid label { display: grid; gap: 6px; color: #b9c7dc; font-weight: 800; }
.vadmin-form-grid input,
.vadmin-form-grid select,
.vadmin-form-grid textarea { border: 1px solid rgba(255,255,255,.13); border-radius: 12px; background: rgba(0,0,0,.25); color: #f4f7ff; padding: 10px 12px; outline: none; }
.vadmin-form-grid option { color: #111; }
.vadmin-form-wide { grid-column: 1 / -1; }
@media (max-width: 980px) { .vweb-coupon-layout, .vweb-coupon-page-grid { grid-template-columns: 1fr; } .vweb-coupon-campaigns { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .vweb-coupon-claim-card, .vweb-coupon-guide, .vweb-coupon-campaign, .vweb-coupon-section { border-radius: 22px; } .vadmin-form-grid { grid-template-columns: 1fr; } }
