:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f2efe8;--surface:#fffc;--surface-strong:#fff;--text:#1f1d18;--muted:#676154;--accent:#b55d2d;--accent-dark:#8d4218;--border:#1f1d181f;--success:#176942;--danger:#a33b2f}*{box-sizing:border-box}html,body{min-height:100%;color:var(--text);background:radial-gradient(circle at 0 0,#b55d2d2e,#0000 28%),linear-gradient(135deg,#f7f1e7 0%,#efe7d8 100%);margin:0;padding:0;font-family:Segoe UI,PingFang SC,sans-serif}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.shell{width:min(1200px,100% - 40px);margin:0 auto;padding:36px 0 72px}.hero{grid-template-columns:1fr;align-items:stretch;gap:20px;margin-bottom:28px;display:grid}.credit-panel{text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.panel{background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:20px;padding:24px;transition:box-shadow .3s,transform .2s;box-shadow:0 16px 40px #4e3b2a14}.panel:hover{transform:translateY(-2px);box-shadow:0 20px 50px #4e3b2a1f}.hero-title{letter-spacing:-.05em;margin:0 0 12px;font-size:clamp(2.4rem,3.8vw,4rem);font-weight:800;line-height:1.05}.hero-copy,.muted{color:var(--muted)}.subtitle{text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:10px;font-size:.9rem;font-weight:600}.section-header{margin-bottom:8px}.section-header h2{margin:0 0 6px;font-size:1.4rem;font-weight:700}.section-header .muted{margin:0;font-size:.9rem}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;display:grid}.main-content{grid-template-columns:1.2fr 1fr;align-items:stretch;gap:20px}.left-column,.right-column{flex-direction:column;gap:20px;display:flex}.left-column>.panel,.left-column>.panel>form{flex-direction:column;flex:1;display:flex}.redeem-credit-row{grid-template-columns:1fr 1fr;align-items:stretch;gap:20px;display:grid}.redeem-panel{padding:20px}.redeem-panel .section-header{margin-bottom:12px}.redeem-panel .section-header h2{margin-bottom:6px;font-size:1.2rem}.redeem-panel .section-header .muted{font-size:.85rem}.redeem-panel .stack{gap:12px}.redeem-panel .input{padding:12px 14px;font-size:.95rem}.redeem-panel .button{padding:12px 18px;font-size:.95rem}.stack{gap:16px;display:grid}.left-column .stack{flex-direction:column;flex:1;gap:16px;display:flex}.left-column .stack>div{flex-shrink:0}.left-column .stack>div:has(textarea){flex-shrink:1}.upload-zone{min-height:180px}.label{color:var(--muted);margin-bottom:6px;font-size:.88rem;font-weight:500;display:block}.input,.textarea,.select{border:1px solid var(--border);width:100%;color:var(--text);background:#fffffff2;border-radius:14px;padding:12px 14px;font-size:.95rem;transition:all .2s}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #b55d2d1a}.input:hover,.textarea:hover,.select:hover{border-color:#b55d2d4d}.textarea{resize:vertical;min-height:100px}.button{cursor:pointer;background:var(--accent);color:#fff;border:none;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 18px;font-size:.95rem;font-weight:600;transition:transform .2s,background .2s,opacity .2s,box-shadow .2s;display:inline-flex}.button:hover{background:var(--accent-dark);transform:translateY(-2px);box-shadow:0 6px 16px #b55d2d40}.button:disabled{opacity:.65;cursor:not-allowed;transform:none}.button.secondary{color:var(--text);background:#ede4d8}.template-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.template-card{border:1px solid var(--border);cursor:pointer;text-align:left;background:#ffffffdb;border-radius:16px;padding:16px;transition:all .2s}.template-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px #4e3b2a1f}.template-card.active{background:#b55d2d14;border-color:#b55d2d99;box-shadow:inset 0 0 0 1px #b55d2d59,0 6px 16px #b55d2d2e}.credit{letter-spacing:-.06em;color:var(--accent);margin:8px 0 0;font-size:2.8rem;font-weight:800}.status{color:var(--success);background:#1769421f;border-radius:999px;padding:8px 12px;font-size:.9rem;display:inline-flex}.status.error{color:var(--danger);background:#a33b2f1f}.loading-state{flex-direction:column;justify-content:center;align-items:center;gap:16px;min-height:200px;padding:32px;display:flex}.loading-spinner{border:4px solid #b55d2d33;border-top-color:var(--accent);border-radius:50%;width:48px;height:48px;animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.generation-status{border:1px solid var(--border);background:#fffffff2;border-radius:16px;margin-bottom:16px;padding:20px}.status-steps{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.status-step{opacity:.5;background:#67615414;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:8px;padding:12px 8px;transition:all .3s;display:flex}.status-step.active{opacity:1;background:#b55d2d1a}.status-step.current{background:#b55d2d26;animation:2s ease-in-out infinite pulse;box-shadow:0 0 0 2px #b55d2d4d}@keyframes pulse{0%,to{box-shadow:0 0 0 2px #b55d2d4d}50%{box-shadow:0 0 0 4px #b55d2d33}}.step-icon{font-size:1.8rem;line-height:1}.step-text{color:var(--text);text-align:center;font-size:.85rem;font-weight:600}.timer-display{background:#b55d2d14;border:1px solid #b55d2d33;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px;display:flex}.timer-icon{font-size:1.2rem}.timer-text{color:var(--accent);font-family:Courier New,monospace;font-size:1rem;font-weight:700}.preview-frame{border:1px solid var(--border);background:#ffffffb3;border-radius:16px;justify-content:center;align-items:center;min-height:280px;max-height:480px;transition:all .2s;display:flex;overflow:hidden}.preview-frame img{object-fit:contain;width:100%;height:100%;display:block}.upload-zone{border:2px dashed var(--border);cursor:pointer;background:#ffffffeb;border-radius:16px;justify-content:center;align-items:center;min-height:160px;max-height:280px;transition:all .2s;display:flex;position:relative;overflow:hidden}.upload-zone:hover{border-color:var(--accent);background:#b55d2d08}.upload-placeholder{flex-direction:column;align-items:center;gap:12px;padding:32px;display:flex}.upload-icon{color:var(--accent);font-size:4rem;font-weight:200;line-height:1}.upload-placeholder .muted{text-align:center;margin:0;font-size:.95rem}.upload-placeholder .small{opacity:.8;font-size:.82rem}.upload-preview{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:320px;display:block}.topbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);padding:12px 10px;font-size:.95rem}.admin-grid{grid-template-columns:280px minmax(0,1fr);gap:24px;display:grid}.admin-layout{background:linear-gradient(135deg,#f7f1e7 0%,#efe7d8 100%);min-height:100vh;display:flex}.admin-sidebar{background:var(--surface-strong);border-right:1px solid var(--border);flex-direction:column;width:260px;padding:24px 0;display:flex;box-shadow:2px 0 20px #4e3b2a0d}.admin-logo{border-bottom:1px solid var(--border);margin-bottom:16px;padding:0 24px 24px}.admin-logo h2{color:var(--accent);margin:0;font-size:1.5rem;font-weight:700}.admin-nav{flex-direction:column;flex:1;gap:4px;padding:0 12px;display:flex}.admin-nav-item{color:var(--text);border-radius:12px;align-items:center;gap:12px;padding:14px 16px;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.admin-nav-item:hover{color:var(--accent);background:#b55d2d14}.admin-nav-item.active{color:var(--accent);background:#b55d2d1f;font-weight:600}.nav-icon{font-size:1.2rem}.admin-sidebar-footer{border-top:1px solid var(--border);margin-top:auto;padding:16px 12px}.admin-logout-btn{width:100%}.admin-main{flex:1;padding:32px;overflow-y:auto}.admin-page{max-width:1200px;margin:0 auto}.admin-page-header{margin-bottom:32px}.admin-page-header h1{margin:8px 0 0;font-size:2rem;font-weight:700}.admin-stats-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:32px;display:grid}.admin-stat-card{background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px;padding:24px;box-shadow:0 8px 30px #4e3b2a0f}.admin-stat-value{letter-spacing:-.06em;color:var(--accent);margin:12px 0 0;font-size:2.5rem;font-weight:800}.admin-stat-danger{color:var(--danger)}.admin-forms-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;margin-bottom:32px;display:grid}.admin-form-panel{background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px;padding:24px;box-shadow:0 8px 30px #4e3b2a0f}.admin-form-panel h2{margin:0 0 20px;font-size:1.25rem;font-weight:600}.admin-form{flex-direction:column;gap:16px;display:flex}.form-group{flex-direction:column;gap:8px;display:flex}.admin-table-panel{background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px;padding:24px;overflow-x:auto;box-shadow:0 8px 30px #4e3b2a0f}.status-badge{border-radius:999px;align-items:center;padding:6px 12px;font-size:.85rem;font-weight:500;display:inline-flex}.status-active{color:var(--success);background:#1769421f}.status-redeemed{color:var(--muted);background:#6761541f}.status-disabled{color:var(--danger);background:#a33b2f1f}.status-processing{color:var(--accent);background:#b55d2d1f}.status-succeeded{color:var(--success);background:#1769421f}.status-failed{color:var(--danger);background:#a33b2f1f}.code-cell{font-family:monospace;font-size:.9rem;font-weight:500}.path-cell{text-overflow:ellipsis;white-space:nowrap;max-width:200px;overflow:hidden}.error-cell{text-overflow:ellipsis;white-space:nowrap;max-width:250px;color:var(--danger);overflow:hidden}.admin-login-container{background:radial-gradient(circle at 0 0,#b55d2d2e,#0000 28%),linear-gradient(135deg,#f7f1e7 0%,#efe7d8 100%);justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}.admin-login-card{background:var(--surface);border:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:24px;width:100%;max-width:480px;padding:40px 32px;box-shadow:0 20px 60px #4e3b2a1a}.admin-login-header{text-align:center;margin-bottom:32px}.admin-login-header h1{margin:12px 0;font-size:2rem;font-weight:700}.admin-login-form{flex-direction:column;gap:20px;margin-bottom:24px;display:flex}.admin-login-button{width:100%;padding:16px;font-size:1.05rem}.admin-login-footer{text-align:center;font-size:.9rem}.instructions-list{margin:0;padding-left:20px}.instructions-list li{margin-bottom:10px;font-size:.92rem;line-height:1.6}.instructions-list li:last-child{margin-bottom:0}.flex-spacer{flex:1}.right-column>.flex-spacer{flex:1;min-height:0}.admin-footer{text-align:center;border-top:1px solid var(--border);margin-top:48px;padding:24px 0}.admin-link{color:var(--muted);border-bottom:1px solid var(--border);letter-spacing:.04em;padding-bottom:2px;font-size:.85rem;transition:color .2s,border-color .2s}.admin-link:hover{color:var(--accent);border-color:var(--accent)}.result-section,.instructions-section{margin-top:0}@media (max-width:900px){.hero,.grid,.admin-grid{grid-template-columns:1fr}.hero{gap:16px;margin-bottom:24px}.credit-panel{padding:20px}.credit{font-size:2.5rem}.template-grid{grid-template-columns:1fr}.redeem-credit-row{grid-template-columns:1fr;gap:16px}.status-steps{flex-direction:column;gap:8px}.status-step{flex-direction:row;justify-content:flex-start;padding:10px 12px}.step-icon{font-size:1.5rem}.step-text{font-size:.9rem}.panel{padding:20px}.main-content,.left-column,.right-column{gap:16px}.flex-spacer{flex:0 0 16px;min-height:16px}.admin-layout{flex-direction:column}.admin-sidebar{border-right:none;border-bottom:1px solid var(--border);width:100%;padding:16px 0}.admin-nav{flex-direction:row;padding:0 16px;overflow-x:auto}.admin-nav-item{white-space:nowrap}.admin-sidebar-footer{border-top:none;border-top:1px solid var(--border);margin-top:16px;padding-top:16px}.admin-main{padding:24px 16px}.admin-stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.admin-forms-grid{grid-template-columns:1fr}.shell{padding:24px 0 48px}.hero-title{font-size:clamp(2rem,6vw,3rem)}}
