.app{display:flex;flex-direction:column;min-height:100vh}.app-header{background:#0000;position:sticky;top:0;transition:background .3s ease,box-shadow .3s ease;z-index:100}.app-header.scrolled{background:var(--color-bg);box-shadow:0 1px 3px #00000014}.header-inner{align-items:center;display:flex;margin:0 auto;max-width:800px;padding:.875rem var(--space-page)}.hamburger-btn{background:none;border-radius:var(--radius-sm);display:flex;flex-direction:column;flex-shrink:0;gap:5px;height:36px;justify-content:center;padding:6px;width:36px}.hamburger-btn:hover{background:#0000000d}.hamburger-line{background:var(--color-text);border-radius:2px;display:block;height:2px;transform-origin:center;transition:all .3s ease;width:100%}.hamburger-line.open:first-child{transform:translateY(7px) rotate(45deg)}.hamburger-line.open:nth-child(2){opacity:0}.hamburger-line.open:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.header-brand{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:2px;text-decoration:none}.header-logo{max-height:40px;max-width:160px;object-fit:contain}.header-title{color:var(--color-primary);font-size:1.125rem;font-weight:700;letter-spacing:-.025em}.header-subtitle{color:var(--color-text-secondary);font-size:.75rem;font-weight:400;letter-spacing:.02em}.header-spacer{flex-shrink:0;width:36px}.menu-overlay{animation:fadeIn .2s ease;background:#0006;inset:0;position:fixed;z-index:200}.slide-menu{background:var(--color-surface);bottom:0;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;padding:0;position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .3s cubic-bezier(.4,0,.2,1);width:280px;z-index:300}.slide-menu.open{transform:translateX(0)}.slide-menu-header{align-items:center;border-bottom:1px solid var(--color-border-light);display:flex;justify-content:center;padding:1.5rem 1.25rem}.menu-logo{max-height:40px;max-width:160px;object-fit:contain}.menu-brand{color:var(--color-primary);font-size:1.125rem;font-weight:700}.menu-link{align-items:center;border-right:3px solid #0000;color:var(--color-text-secondary);display:flex;font-size:.9375rem;font-weight:500;gap:.75rem;padding:.875rem 1.25rem;text-decoration:none;transition:all var(--transition-fast)}.menu-link:hover{background:#667eea0f;color:var(--color-primary)}.menu-link.active{background:#667eea14;border-right-color:var(--color-primary);color:var(--color-primary)}.menu-link svg{flex-shrink:0}.app-main{flex:1 1;margin:0 auto;max-width:800px;width:100%}.app-footer,.app-main{padding:1.5rem var(--space-page)}.app-footer{background:#0000;border-top:none;color:var(--color-text-muted);font-size:.8125rem;margin-top:auto;text-align:center}.sub-footer{font-size:.75rem;font-style:italic;margin-top:-2px}@media (min-width:768px){.header-inner{padding:1rem var(--space-page)}.header-logo{max-height:48px;max-width:200px}.header-title{font-size:1.25rem}.header-subtitle{font-size:.8125rem}.app-main{padding:2rem var(--space-page)}}.home-page{min-height:70vh;padding:0;width:100%}.hero-empty{align-items:center;display:flex;justify-content:center}.hero-empty-glass{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:2.5rem 2rem;text-align:center;width:100%}.hero-empty-icon{align-items:center;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));border-radius:50%;box-shadow:0 4px 20px #667eea4d;color:#fff;display:flex;height:64px;justify-content:center;margin:0 auto 1.5rem;width:64px}.hero-empty-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--color-text) 0,var(--color-primary) 100%);-webkit-background-clip:text;background-clip:text;font-size:2.25rem;font-weight:800;letter-spacing:-.04em;line-height:1.1;margin-bottom:.75rem}.hero-empty-desc{color:var(--color-text-secondary);font-size:.9375rem;line-height:1.6;margin-bottom:2rem}.greeting-hero{align-items:flex-end;border-radius:var(--radius-lg) var(--radius-lg);display:flex;margin:-1rem calc(var(--space-page)*-1) 0;min-height:220px;overflow:hidden;padding:2.25rem 1.5rem 2rem;position:relative}.greeting-orb{border-radius:50%;filter:blur(50px);opacity:0;pointer-events:none;position:absolute;transition:opacity 1.5s ease}.greeting-hero.revealed .greeting-orb{opacity:1}.greeting-orb.orb-a{animation:orbFloat 7s ease-in-out infinite;background:#ffffff26;height:200px;right:-30px;top:-50px;width:200px}.greeting-orb.orb-b{animation:orbFloat 9s ease-in-out infinite reverse;background:#ffffff1a;bottom:20px;height:120px;left:-20px;width:120px}.greeting-orb.orb-c{animation:orbFloat 11s ease-in-out 2s infinite;background:#ffffff14;height:80px;left:60%;top:40%;width:80px}@keyframes orbFloat{0%,to{transform:translate(0) scale(1)}33%{transform:translate(15px,-20px) scale(1.05)}66%{transform:translate(-10px,10px) scale(.95)}}.greeting-pagi{background:linear-gradient(160deg,#f59e0b,#f97316 40%,#ea580c);color:#fff;margin:0}.greeting-tengahhari{background:linear-gradient(160deg,#f97316,#ef4444 40%,#dc2626);color:#fff;margin:0}.greeting-petang{background:linear-gradient(160deg,#8b5cf6,#6366f1 40%,#4f46e5);color:#fff;margin:0}.greeting-malam{background:linear-gradient(160deg,#1e1b4b,#0f172a 40%,#020617);color:#e0e7ff;margin:0}.greeting-content{opacity:0;position:relative;transform:translateY(20px);transition:all .7s cubic-bezier(.16,1,.3,1) .15s;width:100%;z-index:1}.greeting-hero.revealed .greeting-content{opacity:1;transform:translateY(0)}.greeting-meta{align-items:center;display:flex;font-size:.75rem;font-weight:500;gap:.5rem;letter-spacing:.03em;margin-bottom:1rem;opacity:.7}.greeting-dot{background:currentColor;border-radius:50%;height:3px;opacity:.5;width:3px}.greeting-salute{font-size:1.125rem;font-weight:500;letter-spacing:.01em;margin-bottom:.125rem;opacity:.85}.greeting-name{font-size:2.5rem;font-weight:800;letter-spacing:-.04em;line-height:1.05;margin-bottom:.5rem}.greeting-malam .greeting-name{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#e0e7ff,#a5b4fc);-webkit-background-clip:text;background-clip:text}.greeting-sub{font-size:.875rem;font-weight:400;margin-bottom:.75rem;opacity:.65}.greeting-stat-pill{align-items:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #fff3;border-radius:100px;display:inline-flex;font-size:.8125rem;font-weight:600;gap:.5rem;padding:.375rem .875rem}.stat-dot{animation:pulse 2s ease-in-out infinite;background:#34d399;border-radius:50%;box-shadow:0 0 8px #34d39999;height:6px;width:6px}.info-notice{align-items:center;background:#f59e0b14;border:1px solid #f59e0b33;border-radius:var(--radius-md);display:flex;gap:.75rem;margin-top:1.25rem;padding:.875rem 1rem;text-decoration:none;transition:all var(--transition-base)}.info-notice:hover{background:#f59e0b1f;border-color:#f59e0b4d}.info-notice-icon{color:#f59e0b;flex-shrink:0}.info-notice-text{display:flex;flex:1 1;flex-direction:column;gap:.125rem;min-width:0}.info-notice-text strong{color:var(--color-text);font-size:.8125rem;font-weight:700}.info-notice-text span{color:var(--color-text-muted);font-size:.75rem}.info-notice-arrow{color:var(--color-text-muted);flex-shrink:0}.voucher-section{padding:1.5rem 0 0}.section-label{align-items:center;color:var(--color-text-muted);display:flex;font-size:.6875rem;font-weight:700;gap:.75rem;letter-spacing:.1em;margin-bottom:1rem;text-transform:uppercase}.section-line{background:var(--color-border-light);flex:1 1;height:1px}.voucher-list{display:flex;flex-direction:column;gap:.625rem}.voucher-card{border-radius:var(--radius-md);opacity:0;text-decoration:none;transform:translateY(16px);transition:opacity .5s ease,transform .5s cubic-bezier(.16,1,.3,1)}.voucher-card.revealed{opacity:1;transform:translateY(0)}.voucher-card-glow{background:linear-gradient(135deg,#667eea0a,#764ba20a);inset:0;opacity:0;position:absolute;transition:opacity var(--transition-base)}.voucher-card:hover .voucher-card-glow{opacity:1}.voucher-card-inner{align-items:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffffbf;border:1px solid #fff9;border-radius:var(--radius-md);box-shadow:0 1px 3px #0000000a,0 4px 12px #00000005;display:flex;justify-content:space-between;padding:1rem 1.125rem;position:relative;transition:all var(--transition-base)}.voucher-card:hover .voucher-card-inner{border-color:#667eea33;box-shadow:0 4px 16px #667eea14,0 1px 3px #0000000a;transform:translateY(-1px)}.voucher-card-left{flex:1 1;min-width:0}.voucher-campaign-name{color:var(--color-text);font-size:.9375rem;font-weight:700;letter-spacing:-.01em;margin-bottom:.1875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.voucher-code{color:var(--color-primary);font-family:SF Mono,Fira Code,Consolas,monospace;font-size:.75rem;font-weight:600;letter-spacing:.04em}.voucher-date{color:var(--color-text-muted);font-size:.6875rem;font-weight:500;margin-top:.25rem}.voucher-card-right{align-items:center;display:flex;flex-shrink:0;gap:.75rem}.voucher-value{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--color-primary) 0,var(--color-secondary) 100%);-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:800;letter-spacing:-.03em}.voucher-value span{font-size:.75em;font-weight:700}.voucher-value-text{font-size:.8125rem;max-width:80px;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.voucher-badge-pill,.voucher-value-text{color:var(--color-primary);font-weight:700}.voucher-badge-pill{background:#667eea14;border-radius:100px;font-size:.6875rem;letter-spacing:.06em;padding:.25rem .75rem;text-transform:uppercase}.voucher-arrow{align-items:center;background:#667eea0f;border-radius:50%;color:var(--color-primary);display:flex;height:28px;justify-content:center;transition:all var(--transition-base);width:28px}.voucher-card:hover .voucher-arrow{background:var(--color-primary);color:#fff;transform:translateX(2px)}.voucher-branches{align-items:center;border-top:1px solid var(--color-border-light);color:var(--color-text-muted);display:flex;font-size:.6875rem;gap:.5rem;padding:.5rem 1.125rem .625rem}.voucher-branches svg{flex-shrink:0;opacity:.6}.voucher-branches span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.glass-btn{align-items:center;background:linear-gradient(135deg,var(--color-primary) 0,var(--color-secondary) 100%);border-radius:100px;box-shadow:0 4px 16px #667eea59,0 1px 3px #0000001a;color:#fff;display:inline-flex;font-size:.9375rem;font-weight:700;gap:.625rem;letter-spacing:-.01em;padding:.9375rem 1.75rem;text-decoration:none;transition:all var(--transition-base)}.glass-btn:hover{box-shadow:0 8px 24px #667eea66,0 2px 6px #0000001a;transform:translateY(-2px)}.glass-btn svg{transition:transform var(--transition-base)}.glass-btn:hover svg{transform:translateX(3px)}.glass-btn-outline{align-items:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fff9;border:1.5px solid var(--color-border);border-radius:100px;color:var(--color-text-secondary);display:inline-flex;font-size:.875rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;text-decoration:none;transition:all var(--transition-base)}.glass-btn-outline:hover{background:#667eea0a;border-color:var(--color-primary);color:var(--color-primary)}.home-actions{margin-top:2rem;padding-bottom:1rem;text-align:center}@media (min-width:768px){.hero-empty-glass{padding:3.5rem 3rem}.hero-empty-title{font-size:3rem}.greeting-hero{border-radius:0 0 var(--radius-xl) var(--radius-xl);min-height:260px;padding:3rem 2rem 2.5rem}.greeting-name{font-size:3.25rem}.greeting-salute{font-size:1.25rem}.voucher-card-inner{padding:1.25rem 1.5rem}.voucher-value{font-size:1.75rem}}.campaign-details{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.5rem}.campaign-header{margin-bottom:1.25rem}.campaign-badge{background:#667eea1a;border-radius:100px;color:var(--color-primary);display:inline-block;font-size:.75rem;font-weight:600;letter-spacing:.05em;margin-bottom:.75rem;padding:.25rem .75rem;text-transform:uppercase}.campaign-title{color:var(--color-text);font-size:1.5rem;font-weight:700;letter-spacing:-.025em;line-height:1.3}.campaign-image{border-radius:var(--radius-md);margin-bottom:1.25rem;overflow:hidden}.campaign-banner-img{border-radius:var(--radius-md);display:block;height:auto;max-height:280px;object-fit:cover;width:100%}.hero-banner{background:var(--color-gradient);border-radius:var(--radius-md);color:#fff;margin-bottom:1.5rem;overflow:hidden;padding:1.75rem 1.5rem;position:relative;text-align:center}.hero-banner:after{background:radial-gradient(ellipse at 30% 20%,#ffffff26 0,#0000 60%);content:"";height:200%;left:-50%;pointer-events:none;position:absolute;top:-50%;width:200%}.hero-label{display:block;font-size:.8125rem;font-weight:500;letter-spacing:.1em;margin-bottom:.375rem;opacity:.85;text-transform:uppercase}.hero-value{font-size:2rem;font-weight:700;letter-spacing:-.02em;margin:0}.campaign-description{color:var(--color-text-secondary);font-size:.9375rem;line-height:1.7;margin-bottom:1.5rem}.campaign-description h1,.campaign-description h2,.campaign-description h3{color:var(--color-text);margin-bottom:.5rem}.campaign-description ol,.campaign-description ul{margin-bottom:.75rem;padding-left:1.5rem}.campaign-description a{color:var(--color-primary);text-decoration:underline}.info-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:1fr 1fr;margin-bottom:1.5rem}.info-cell{background:var(--color-border-light);border-radius:var(--radius-sm);display:flex;flex-direction:column;gap:.25rem;padding:1rem}.info-label{color:var(--color-text-muted);font-size:.75rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}.info-value{color:var(--color-text);font-size:.9375rem;font-weight:600}.slots-section{margin-bottom:1.5rem}.slots-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.slots-label{color:var(--color-text-secondary);font-size:.8125rem;font-weight:500}.slots-count{color:var(--color-primary);font-size:.875rem;font-weight:600}.slots-bar{background:var(--color-border-light);border-radius:100px;height:6px;margin-bottom:.375rem;overflow:hidden}.slots-fill{background:var(--color-gradient);border-radius:100px;height:100%;transition:width 1s ease}.slots-detail{color:var(--color-text-muted);font-size:.75rem}.rules-section{background:var(--color-border-light);border-radius:var(--radius-md);padding:1.25rem}.rules-title{color:var(--color-text);font-size:.875rem;font-weight:600;margin-bottom:.75rem}.rules-list{list-style:none;padding:0}.rules-list li{color:var(--color-text-secondary);font-size:.875rem;line-height:1.5;margin:.5rem 0;padding-left:1.25rem;position:relative}.rules-list li:before{background:var(--color-primary);border-radius:50%;content:"";height:5px;left:0;position:absolute;top:.5rem;width:5px}@media (min-width:768px){.campaign-details{padding:2rem}.campaign-title{font-size:1.75rem}.hero-banner{padding:2.5rem 2rem}.hero-value{font-size:2.5rem}.campaign-banner-img{max-height:360px}}.registration-form{width:100%}.btn-back{align-items:center;background:none;color:var(--color-text-secondary);display:inline-flex;font-size:.875rem;font-weight:500;gap:.375rem;margin-bottom:1rem;padding:.5rem 0}.btn-back:hover{color:var(--color-primary)}.form-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.5rem}.form-title{color:var(--color-text);font-size:1.25rem;font-weight:700;margin-bottom:.25rem}.form-subtitle{color:var(--color-text-muted);font-size:.875rem;margin-bottom:1.5rem}.form-card form{gap:1.25rem}.form-card form,.form-section{display:flex;flex-direction:column}.form-section label{color:var(--color-text);font-size:.8125rem;font-weight:600;margin-bottom:.375rem}.form-row{grid-gap:1.25rem;display:grid;gap:1.25rem;grid-template-columns:1fr}.error-message{background:#ef444414;border-left:3px solid var(--color-error);border-radius:var(--radius-sm);color:var(--color-error);font-size:.875rem;font-weight:500;padding:.875rem 1rem}.btn-submit{background:var(--color-gradient);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:#fff;font-size:1rem;font-weight:600;margin-top:.5rem;padding:1rem;width:100%}.btn-submit:hover:not(:disabled){box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-submit:active:not(:disabled){transform:translateY(0)}.btn-submit:disabled{cursor:not-allowed;opacity:.5}@media (min-width:768px){.form-card{padding:2rem}.form-row{grid-template-columns:1fr 1fr}.form-title{font-size:1.375rem}}.voucher-confirmation{width:100%}.success-header{margin-bottom:1.5rem;text-align:center}.success-icon{align-items:center;background:#10b9811a;border-radius:50%;color:var(--color-success);display:flex;height:64px;justify-content:center;margin:0 auto 1rem;width:64px}.success-header h1{color:var(--color-text);font-size:1.375rem;font-weight:700;margin-bottom:.25rem}.success-header p{color:var(--color-text-secondary);font-size:.9375rem}.voucher-card{background:var(--color-gradient);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:#fff;margin-bottom:1.5rem;overflow:hidden;padding:1.75rem 1.5rem;position:relative;text-align:center}.voucher-card:after,.voucher-card:before{background:var(--color-bg);border-radius:50%;content:"";height:24px;position:absolute;top:50%;transform:translateY(-50%);width:24px}.voucher-card:before{left:-12px}.voucher-card:after{right:-12px}.voucher-code{margin-bottom:1.25rem}.voucher-code label{display:block;font-size:.8125rem;letter-spacing:.1em;margin-bottom:.5rem;opacity:.8;text-transform:uppercase}.code-display{background:#ffffff26;border-radius:var(--radius-sm);color:#fff;font-family:Inter,monospace;font-size:1.375rem;font-weight:700;letter-spacing:.075em;margin-bottom:1.25rem;padding:.875rem 1rem}.qr-section{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:inline-block;padding:.75rem}.voucher-info{margin-top:1.25rem;text-align:left}.voucher-info .info-item{border-bottom:1px solid #ffffff26;display:flex;font-size:.875rem;justify-content:space-between;padding:.625rem 0}.voucher-info .info-item:last-child{border-bottom:none}.voucher-info .info-item span{opacity:.8}.action-section{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.5rem}.action-section h3{color:var(--color-text);font-size:1rem;text-align:center}.action-section h3,.btn-save{font-weight:600;margin-bottom:1rem}.btn-save{background:var(--color-gradient);border-radius:var(--radius-sm);color:#fff;display:block;padding:.875rem;width:100%}.btn-save:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.email-section{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.btn-email{background:var(--color-success);border-radius:var(--radius-sm);color:#fff;font-weight:600;padding:.875rem;width:100%}.btn-email:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.btn-email:disabled{cursor:not-allowed;opacity:.5}.note{color:var(--color-text-muted);font-size:.8125rem;line-height:1.6;text-align:center}@media (min-width:768px){.email-section{flex-direction:row}.email-section input{flex:1 1}.btn-email{padding:.875rem 1.5rem;white-space:nowrap;width:auto}.voucher-card{padding:2.5rem 2rem}.code-display{font-size:1.625rem}}.campaign-page{width:100%}.tenant-logo-wrapper{margin-bottom:1.5rem;text-align:center}.tenant-logo{max-height:56px;max-width:180px;object-fit:contain}.campaign-loading{display:flex;flex-direction:column;gap:1rem}.skeleton-logo{height:40px;margin:0 auto;width:120px}.skeleton-title{height:28px;width:70%}.skeleton-banner{border-radius:var(--radius-md);height:120px;width:100%}.skeleton-text{height:16px;width:100%}.skeleton-text.short{width:60%}.campaign-error{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:3rem 1.5rem;text-align:center}.error-icon{align-items:center;background:#ef44441a;border-radius:50%;color:var(--color-error);display:flex;height:56px;justify-content:center;margin:0 auto 1rem;width:56px}.campaign-error h2{color:var(--color-text);font-size:1.25rem;margin-bottom:.5rem}.campaign-error p{color:var(--color-text-secondary)}.btn-register{background:var(--color-gradient);border-radius:var(--radius-md);box-shadow:var(--shadow-md);color:#fff;display:block;font-size:1.0625rem;font-weight:600;letter-spacing:.01em;margin-top:1.5rem;padding:1rem 1.5rem;width:100%}.btn-register:hover:not(:disabled){box-shadow:var(--shadow-lg);transform:translateY(-2px)}.btn-register:active:not(:disabled){transform:translateY(0)}.btn-register:disabled{cursor:not-allowed;filter:grayscale(.3);opacity:.5}@media (min-width:768px){.tenant-logo{max-height:64px;max-width:220px}.btn-register{margin-left:auto;margin-right:auto;max-width:320px}}.check-voucher{width:100%}.check-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.5rem}.check-card h1{color:var(--color-text);font-size:1.375rem;font-weight:700;margin-bottom:.25rem}.check-card>p{color:var(--color-text-muted);font-size:.875rem;margin-bottom:1.25rem}.check-tabs{background:var(--color-bg);border-radius:var(--radius-sm);display:flex;gap:.5rem;margin-bottom:1.5rem;padding:.25rem}.check-tab{align-items:center;background:none;border-radius:6px;color:var(--color-text-muted);display:flex;flex:1 1;font-size:.8125rem;font-weight:600;gap:.5rem;justify-content:center;padding:.625rem .75rem;transition:all var(--transition-base)}.check-tab:hover{color:var(--color-text-secondary)}.check-tab.active{background:var(--color-surface);box-shadow:var(--shadow-sm);color:var(--color-primary)}.scan-section{text-align:center}.qr-reader{border-radius:var(--radius-md);margin:0 auto 1rem;max-width:320px;min-height:0;overflow:hidden;width:100%}.qr-reader.active{border:2px solid var(--color-primary);min-height:280px}.qr-reader video{border-radius:var(--radius-md)}#qr-reader__scan_region{min-height:250px}#qr-reader__dashboard{display:none!important}.btn-scan{align-items:center;background:var(--color-gradient);border-radius:100px;box-shadow:0 4px 16px #667eea59,0 1px 3px #0000001a;color:#fff;display:inline-flex;font-size:.9375rem;font-weight:700;gap:.625rem;margin-bottom:1rem;padding:.875rem 1.75rem;transition:all var(--transition-base)}.btn-scan:hover{box-shadow:0 8px 24px #667eea66,0 2px 6px #0000001a;transform:translateY(-2px)}.btn-scan-stop{align-items:center;background:#ef444414;border:1px solid #ef444426;border-radius:100px;color:var(--color-error);display:inline-flex;font-size:.875rem;font-weight:600;margin-bottom:1rem;padding:.625rem 1.5rem;transition:all var(--transition-base)}.btn-scan-stop:hover{background:#ef444426}.scan-hint{color:var(--color-text-muted);font-size:.8125rem;margin-bottom:.5rem}.code-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}.btn-check{background:var(--color-gradient);border-radius:var(--radius-sm);color:#fff;font-weight:600;padding:.875rem;width:100%}.btn-check:hover:not(:disabled){box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-check:disabled{cursor:not-allowed;opacity:.5}.check-error{background:#ef444414;border-left:3px solid var(--color-error);border-radius:var(--radius-sm);color:var(--color-error);font-size:.875rem;font-weight:500;margin-bottom:1rem;padding:.875rem 1rem}.voucher-result{background:var(--color-border-light);border-radius:var(--radius-md);padding:1.25rem}.voucher-result h2{color:var(--color-primary);font-size:1rem;font-weight:600;margin-bottom:.75rem}.detail-item{border-bottom:1px solid var(--color-border);display:flex;font-size:.875rem;justify-content:space-between;padding:.75rem 0}.detail-item:last-child{border-bottom:none}.detail-item span{color:var(--color-text-muted)}.detail-item strong{color:var(--color-text);font-weight:600}.status-active{color:var(--color-success)!important}.status-used{color:var(--color-warning)!important}.status-expired{color:var(--color-error)!important}@media (min-width:768px){.check-card{margin:0 auto;max-width:560px;padding:2rem}.code-form{flex-direction:row}.code-form input{flex:1 1}.btn-check{padding:.875rem 1.5rem;white-space:nowrap;width:auto}}.privacy-page{width:100%}.privacy-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.5rem}.privacy-icon{align-items:center;background:#10b9811a;border-radius:50%;color:var(--color-success);display:flex;height:56px;justify-content:center;margin-bottom:1rem;width:56px}.privacy-card h1{color:var(--color-text);font-size:1.25rem;font-weight:700;margin-bottom:.5rem}.privacy-intro{color:var(--color-text-secondary);font-size:.9375rem;line-height:1.6;margin-bottom:1.5rem}.privacy-section{border-bottom:1px solid var(--color-border-light);margin-bottom:1.25rem;padding-bottom:1.25rem}.privacy-section:last-of-type{border-bottom:none}.privacy-section h2{color:var(--color-text);font-size:1rem;font-weight:600;margin-bottom:.5rem}.privacy-section p{color:var(--color-text-secondary);font-size:.875rem;line-height:1.7;margin-bottom:.5rem}.privacy-section ul{list-style:none;margin:.5rem 0 0;padding:0}.privacy-section li{color:var(--color-text-secondary);font-size:.875rem;line-height:1.8;padding-left:1.25rem;position:relative}.privacy-section li:before{background:var(--color-primary);border-radius:50%;content:"";height:6px;left:0;position:absolute;top:.65em;width:6px}.privacy-footer{border-top:1px solid var(--color-border-light);margin-top:1.5rem;padding-top:1rem}.privacy-footer p{color:var(--color-text-muted);font-size:.8125rem;font-style:italic}@media (min-width:768px){.privacy-card{padding:2rem}.privacy-card h1{font-size:1.375rem}}.profile-page{width:100%}.profile-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:1.5rem}.profile-icon{align-items:center;background:#667eea1a;border-radius:50%;color:var(--color-primary);display:flex;height:56px;justify-content:center;margin-bottom:1rem;width:56px}.profile-card h1{color:var(--color-text);font-size:1.25rem;font-weight:700;margin-bottom:.25rem}.profile-desc{color:var(--color-text-muted);font-size:.875rem;margin-bottom:1.25rem}.profile-card form{display:flex;flex-direction:column;gap:1.25rem}.encrypted-badge{align-items:center;background:#10b98114;border-radius:100px;color:var(--color-success);display:inline-flex;font-size:.75rem;font-weight:600;gap:.375rem;margin-bottom:1rem;padding:.375rem .75rem}.input-disabled{background:var(--color-bg)!important;cursor:not-allowed;opacity:.6}.success-message{background:#10b98114;border-left:3px solid var(--color-success);border-radius:var(--radius-sm);color:var(--color-success);font-size:.875rem;font-weight:500;margin-bottom:.5rem;padding:.875rem 1rem}.reset-section{margin-top:1.5rem}.reset-divider{background:var(--color-border-light);height:1px;margin-bottom:1.25rem}.btn-reset{align-items:center;background:#ef44440f;border:1px solid #ef444426;border-radius:100px;color:var(--color-error);display:inline-flex;font-size:.8125rem;font-weight:600;gap:.5rem;padding:.625rem 1.25rem;transition:all var(--transition-base)}.btn-reset:hover{background:#ef44441f;border-color:#ef44444d}.reset-hint{color:var(--color-text-muted);font-size:.75rem;margin-top:.5rem}.reset-overlay{align-items:center;animation:fadeIn .2s ease;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#00000080;bottom:0;display:flex;height:100vh;justify-content:center;left:0;padding:1rem;position:fixed;right:0;top:0;width:100vw;z-index:9999}.reset-modal{animation:scaleIn .25s ease;background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-width:340px;padding:2rem 1.5rem;text-align:center;width:100%}.reset-modal-icon{align-items:center;background:#ef44441a;border-radius:50%;color:var(--color-error);display:flex;height:52px;justify-content:center;margin:0 auto 1rem;width:52px}.reset-modal h3{color:var(--color-text);font-size:1.125rem;font-weight:700;margin-bottom:.5rem}.reset-modal p{color:var(--color-text-secondary);font-size:.875rem;line-height:1.5;margin-bottom:1.5rem}.reset-modal-actions{display:flex;gap:.75rem}.btn-cancel{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);flex:1 1;font-size:.875rem;font-weight:600;padding:.75rem;transition:all var(--transition-base)}.btn-cancel:hover{background:var(--color-border-light)}.btn-confirm-reset{background:var(--color-error);border-radius:var(--radius-sm);color:#fff;flex:1 1;font-size:.875rem;font-weight:600;padding:.75rem;transition:all var(--transition-base)}.btn-confirm-reset:hover{background:#dc2626}.btn-cancel:disabled,.btn-confirm-reset:disabled{cursor:not-allowed;opacity:.6}@media (min-width:768px){.profile-card{padding:2rem}.profile-card h1{font-size:1.375rem}}:root{--color-primary:#667eea;--color-primary-dark:#5a6fd6;--color-primary-light:#8b9ef0;--color-secondary:#764ba2;--color-gradient:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);--color-bg:#f5f7fa;--color-surface:#fff;--color-text:#1a1a2e;--color-text-secondary:#6b7280;--color-text-muted:#9ca3af;--color-border:#e5e7eb;--color-border-light:#f3f4f6;--color-success:#10b981;--color-error:#ef4444;--color-warning:#f59e0b;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #00000012,0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014,0 4px 6px -4px #0000000a;--shadow-xl:0 20px 25px -5px #00000014,0 8px 10px -6px #0000000a;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--space-page:1rem;--transition-fast:150ms ease;--transition-base:250ms ease;--transition-slow:400ms ease;--font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:#f5f7fa;background:var(--color-bg);color:#1a1a2e;color:var(--color-text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-family);font-size:16px;line-height:1.6}#root,body{min-height:100vh}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.animate-fade-in{animation:fadeIn ease .4s ease both;animation:fadeIn var(--transition-slow) ease both}.animate-fade-in-up{animation:fadeInUp .5s ease both}.animate-fade-in-down{animation:fadeInDown .4s ease both}.animate-slide-up{animation:slideUp .6s ease both}.animate-scale-in{animation:scaleIn .4s ease both}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}button{border:none;border-radius:8px;border-radius:var(--radius-sm);cursor:pointer;font-weight:600;transition:all .25s ease;transition:all var(--transition-base)}button,input,select,textarea{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-family:var(--font-family);font-size:1rem}input,select,textarea{background:#fff;background:var(--color-surface);border:2px solid #e5e7eb;border:2px solid var(--color-border);border-radius:8px;border-radius:var(--radius-sm);color:#1a1a2e;color:var(--color-text);padding:.875rem 1rem;transition:border-color .15s ease,box-shadow .15s ease;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}input:focus,select:focus,textarea:focus{border-color:#667eea;border-color:var(--color-primary);box-shadow:0 0 0 3px #667eea26;outline:none}input::placeholder{color:#9ca3af;color:var(--color-text-muted)}.skeleton{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0 50%,#f0f0f0 75%);background-size:200% 100%;border-radius:8px;border-radius:var(--radius-sm)}@media (min-width:768px){:root{--space-page:2rem}}
/*# sourceMappingURL=main.a4e38129.css.map*/