:root{--bg-primary:#0f0f1a;--bg-secondary:#1a1a2e;--bg-tertiary:#16213e;--surface:#ffffff0f;--surface-hover:#ffffff1a;--surface-active:#ffffff24;--glass:#ffffff14;--glass-border:#ffffff1f;--text-primary:#f1f1f6;--text-secondary:#f1f1f68c;--text-muted:#f1f1f659;--accent:#6c63ff;--accent-light:#8b83ff;--accent-glow:#6c63ff40;--accent-gradient:linear-gradient(135deg, #6c63ff 0%, #a78bfa 100%);--success:#34d399;--success-glow:#34d39933;--warning:#fbbf24;--warning-glow:#fbbf2433;--error:#f87171;--error-glow:#f8717133;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 8px 32px #0006;--shadow-lg:0 16px 64px #00000080;--shadow-glow:0 0 40px var(--accent-glow);--radius-sm:10px;--radius-md:16px;--radius-lg:24px;--radius-xl:32px;--radius-full:50%;font-family:Pretendard Variable,Pretendard,system-ui,-apple-system,sans-serif;font-size:18px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);background-image:radial-gradient(80% 60% at 50% 0,#6c63ff1a 0%,#0000 60%),radial-gradient(60% 40% at 80% 100%,#a78bfa0f 0%,#0000 50%);height:100dvh;margin:0;position:relative;overflow:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(50% 50% at 20% 20%,#6c63ff0f 0%,#0000 70%),radial-gradient(40% 40% at 80% 80%,#a78bfa0d 0%,#0000 70%),radial-gradient(60% 30% at 60% 0,#34d39908 0%,#0000 60%);animation:15s ease-in-out infinite alternate auroraShift;position:fixed;inset:0}#root{z-index:1;justify-content:center;align-items:center;height:100dvh;display:flex;position:relative}@keyframes auroraShift{0%{opacity:.6;transform:translate(0)scale(1)}50%{opacity:1;transform:translate(10px,-10px)scale(1.05)}to{opacity:.8;transform:translate(-10px,10px)scale(.98)}}@keyframes digitBounce{0%{opacity:.3;transform:scale(.5)}50%{transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes checkPop{0%{opacity:0;transform:scale(0)}50%{transform:scale(1.2)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes progressShrink{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes ripple{to{opacity:0;transform:scale(4)}}.glass-card{background:var(--glass);border:1px solid var(--glass-border);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(20px)}.setup-page{width:100%;max-width:460px;padding:48px 40px;animation:.6s ease-out fadeInUp}.setup-logo{text-align:center;margin-bottom:40px}.setup-logo .logo-icon{background:var(--accent-gradient);width:64px;height:64px;box-shadow:var(--shadow-glow);border-radius:20px;justify-content:center;align-items:center;margin:0 auto 16px;font-size:28px;display:flex}.setup-page h1{text-align:center;color:var(--text-primary);margin-bottom:6px;font-size:26px;font-weight:700}.setup-page .setup-subtitle{text-align:center;color:var(--text-secondary);margin-bottom:36px;font-size:15px}.form-group{margin-bottom:18px}.form-group label{color:var(--text-secondary);letter-spacing:.3px;margin-bottom:8px;font-size:13px;font-weight:600;display:block}.form-group input{width:100%;color:var(--text-primary);background:var(--surface);border:1px solid var(--glass-border);border-radius:var(--radius-md);outline:none;padding:15px 18px;font-family:inherit;font-size:16px;transition:all .2s}.form-group input::placeholder{color:var(--text-muted)}.form-group input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);background:var(--surface-hover)}.setup-page .submit-btn{color:#fff;background:var(--accent-gradient);border-radius:var(--radius-md);cursor:pointer;width:100%;box-shadow:var(--shadow-glow);letter-spacing:.3px;border:none;margin-top:8px;padding:16px;font-family:inherit;font-size:17px;font-weight:700;transition:all .2s}.setup-page .submit-btn:hover{box-shadow:0 0 50px var(--accent-glow);transform:translateY(-1px)}.setup-page .submit-btn:active{transform:translateY(0)}.setup-page .submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.checkin-page{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:520px;max-height:100dvh;padding:20px 24px;animation:.5s ease-out fadeIn;display:flex;overflow-y:auto}.checkin-header{margin-bottom:24px}.checkin-header .clock-display{color:var(--text-muted);font-variant-numeric:tabular-nums;cursor:default;-webkit-tap-highlight-color:transparent;margin-bottom:12px;font-size:13px}.checkin-header h1{color:var(--text-primary);font-size:28px;font-weight:700;line-height:1.4}.subtitle{color:var(--text-secondary);margin-bottom:12px;font-size:15px}.phone-display{letter-spacing:3px;background:var(--surface);border:2px solid var(--glass-border);border-radius:var(--radius-xl);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:2px;width:100%;max-width:420px;min-height:68px;margin-bottom:20px;padding:16px 28px;font-size:36px;font-weight:700;transition:border-color .3s;display:flex}.phone-display.has-input{border-color:var(--accent);box-shadow:0 0 20px var(--accent-glow)}.phone-prefix{color:var(--text-primary)}.phone-separator{color:var(--text-muted);margin:0 4px}.phone-placeholder{color:var(--text-muted)}.phone-digit{color:var(--text-primary)}.numpad{grid-template-columns:repeat(3,1fr);gap:12px;width:100%;max-width:360px;margin:0 auto;display:grid}.numpad-key{aspect-ratio:1.4;width:100%;color:var(--text-primary);border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;font-family:inherit;font-size:28px;font-weight:600;transition:all .15s;display:flex;position:relative;overflow:hidden}.numpad-key:hover{background:var(--surface-hover)}.numpad-key:active{background:var(--surface-active);transform:scale(.95)}.numpad-key.action{color:var(--text-secondary);font-size:15px;font-weight:500}.numpad-key.action:active{color:var(--text-primary)}.numpad-key.enter{aspect-ratio:auto;background:var(--accent-gradient);color:#fff;letter-spacing:1px;box-shadow:var(--shadow-glow);border:none;grid-column:1/-1;margin-top:4px;padding:16px;font-size:20px;font-weight:700}.numpad-key.enter:hover{box-shadow:0 0 50px var(--accent-glow)}.numpad-key.enter:active{transform:scale(.98)}.numpad-key:disabled{opacity:.35;cursor:not-allowed;transform:none!important}.numpad-key .ripple{pointer-events:none;background:#ffffff26;border-radius:50%;animation:.6s linear ripple;position:absolute;transform:scale(0)}.checkin-result{text-align:center;width:100%;max-width:560px;padding:40px 32px;animation:.5s ease-out fadeInUp}.result-header{margin-bottom:36px}.result-check{background:linear-gradient(135deg, var(--success) 0%, #6ee7b7 100%);color:#fff;border-radius:var(--radius-full);width:80px;height:80px;box-shadow:0 0 40px var(--success-glow);justify-content:center;align-items:center;margin:0 auto 20px;font-size:40px;font-weight:700;animation:.5s cubic-bezier(.175,.885,.32,1.275) checkPop;display:flex}.result-check.checkout{background:linear-gradient(135deg, var(--accent) 0%, #a78bfa 100%);font-size:36px;box-shadow:0 0 40px #6c63ff4d}.checkout-summary{color:var(--text-secondary);justify-content:center;align-items:center;gap:8px;margin-top:12px;font-size:16px;font-weight:500;display:flex}.checkout-arrow{color:var(--accent)}.checkout-duration{color:var(--accent);font-weight:700}.locker-section{text-align:center!important}.locker-badges{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.locker-badge{background:linear-gradient(135deg, var(--accent) 0%, #a78bfa 100%);color:#fff;border-radius:var(--radius-md);justify-content:center;align-items:center;min-width:64px;height:48px;padding:0 20px;font-size:22px;font-weight:800;display:inline-flex;box-shadow:0 4px 16px #6c63ff4d}.result-header h1{color:var(--text-primary);margin-bottom:6px;font-size:36px;font-weight:800}.result-greeting{color:var(--success);font-size:18px;font-weight:600}.checkout-mode .result-greeting{color:var(--accent)}.result-body{text-align:left}.result-section{margin-bottom:24px;animation:.5s ease-out backwards fadeInUp}.result-section:nth-child(2){animation-delay:.1s}.result-section h2{color:var(--text-secondary);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:12px;padding-left:4px;font-size:12px;font-weight:700}.coach-label{color:var(--accent-light);letter-spacing:0;text-transform:none;font-weight:500}.result-section ul{list-style:none}.result-card{background:var(--surface);border:1px solid var(--glass-border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;margin-bottom:10px;padding:18px 20px;transition:all .2s;display:flex}.card-main{align-items:center;gap:10px;display:flex}.product-name{color:var(--text-primary);font-size:16px;font-weight:700}.product-category{color:var(--accent-light);background:var(--accent-glow);letter-spacing:.3px;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600}.card-sub{color:var(--text-secondary);align-items:center;gap:14px;font-size:14px;display:flex}.days-left{color:var(--accent-light);font-size:15px;font-weight:700}.days-left.warning{color:var(--warning);text-shadow:0 0 10px var(--warning-glow)}.days-left.expired{color:var(--error)}.end-date{color:var(--text-muted);font-size:13px}.session-count{color:var(--text-secondary);font-size:14px}.session-count strong{color:var(--accent-light);font-size:20px;font-weight:800}.result-notice{text-align:center;color:var(--text-secondary);background:var(--surface);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:28px}.notice-sub{color:var(--text-muted);margin-top:6px;font-size:14px}.auto-close-bar{margin-top:20px}.back-now-btn{border:1px solid var(--glass-border);border-radius:var(--radius-md,12px);color:var(--text-secondary);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;margin-top:12px;padding:10px 32px;font-size:14px;font-weight:500;transition:all .2s}.back-now-btn:hover{background:var(--surface-hover);color:var(--text-primary);border-color:var(--text-muted)}.auto-close-bar p{color:var(--text-muted);margin-bottom:10px;font-size:13px}.progress-track{background:var(--surface);border-radius:2px;width:100%;height:4px;overflow:hidden}.progress-fill{background:var(--accent-gradient);transform-origin:0;height:100%;animation:progressShrink var(--duration) linear forwards;border-radius:2px}.error-screen{text-align:center;width:100%;max-width:480px;padding:48px 32px;animation:.4s ease-out scaleIn}.error-icon{border-radius:var(--radius-full);justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 24px;font-size:40px;display:flex}.error-icon.not-found{background:linear-gradient(135deg, var(--error) 0%, #fca5a5 100%);box-shadow:0 0 40px var(--error-glow);color:#fff}.error-icon.forbidden{background:linear-gradient(135deg, var(--warning) 0%, #fde68a 100%);box-shadow:0 0 40px var(--warning-glow);color:#fff}.error-icon.generic{background:var(--surface);border:2px solid var(--glass-border);color:var(--text-secondary)}.error-screen h1{color:var(--text-primary);margin-bottom:8px;font-size:28px;font-weight:800}.error-screen .error-message{color:var(--text-secondary);margin-bottom:6px;font-size:16px;line-height:1.6}.error-screen .error-sub{color:var(--text-muted);margin-bottom:8px;font-size:14px}.error-actions{gap:12px;width:100%;margin-top:24px;display:flex}.error-action-btn{background:var(--surface);border:1px solid var(--glass-border);border-radius:var(--radius-md);cursor:pointer;text-align:left;-webkit-tap-highlight-color:transparent;flex:1;align-items:center;gap:12px;padding:18px 20px;font-family:inherit;transition:all .2s;display:flex}.error-action-btn:hover{background:var(--surface-hover);transform:translateY(-1px)}.error-action-btn:active{transform:scale(.98)}.error-action-btn .action-icon{flex-shrink:0;font-size:28px}.error-action-btn .action-text{flex-direction:column;gap:2px;display:flex}.error-action-btn .action-text strong{color:var(--text-primary);font-size:15px;font-weight:700}.error-action-btn .action-text small{color:var(--text-secondary);font-size:12px}.error-action-btn.memo:hover{border-color:var(--accent);box-shadow:0 0 20px var(--accent-glow)}.visitor-memo-screen{text-align:center;width:100%;max-width:480px;padding:40px 32px;animation:.5s ease-out fadeInUp}.memo-header{margin-bottom:28px}.memo-icon{margin-bottom:12px;font-size:48px}.visitor-memo-screen h1{color:var(--text-primary);margin-bottom:6px;font-size:28px;font-weight:800}.memo-subtitle{color:var(--text-secondary);font-size:15px}.memo-form{text-align:left}.memo-form-group{margin-bottom:16px}.memo-form-group label{color:var(--text-secondary);letter-spacing:.3px;margin-bottom:8px;font-size:13px;font-weight:600;display:block}.memo-form-group input,.memo-form-group textarea{width:100%;color:var(--text-primary);background:var(--surface);border:1px solid var(--glass-border);border-radius:var(--radius-sm);resize:none;outline:none;padding:14px 16px;font-family:inherit;font-size:16px;transition:all .2s}.memo-form-group input::placeholder,.memo-form-group textarea::placeholder{color:var(--text-muted)}.memo-form-group input:focus,.memo-form-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);background:var(--surface-hover)}.memo-actions{flex-direction:column;gap:10px;margin-top:20px;display:flex}.memo-submit-btn{color:#fff;background:var(--accent-gradient);border-radius:var(--radius-md);cursor:pointer;width:100%;box-shadow:var(--shadow-glow);border:none;padding:16px;font-family:inherit;font-size:17px;font-weight:700;transition:all .2s}.memo-submit-btn:hover{box-shadow:0 0 50px var(--accent-glow);transform:translateY(-1px)}.memo-submit-btn:active{transform:translateY(0)}.memo-submit-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.memo-back-btn{width:100%;color:var(--text-secondary);background:var(--surface);border:1px solid var(--glass-border);border-radius:var(--radius-md);cursor:pointer;padding:14px;font-family:inherit;font-size:15px;font-weight:600;transition:all .2s}.memo-back-btn:hover{background:var(--surface-hover);color:var(--text-primary)}.memo-back-btn:disabled{opacity:.5;cursor:not-allowed}.memo-success-icon{background:linear-gradient(135deg, var(--success) 0%, #6ee7b7 100%);color:#fff;border-radius:var(--radius-full);width:80px;height:80px;box-shadow:0 0 40px var(--success-glow);justify-content:center;align-items:center;margin:0 auto 20px;font-size:40px;font-weight:700;animation:.5s cubic-bezier(.175,.885,.32,1.275) checkPop;display:flex}.memo-success-sub{color:var(--text-secondary);margin-bottom:24px;font-size:16px}.auto-close-text{color:var(--text-muted);margin-top:16px;font-size:13px}.error-text{color:var(--error);margin:8px 0;font-size:14px;animation:.3s ease-out fadeIn}.loading-text{color:var(--text-secondary);margin-top:16px;animation:1.5s ease-in-out infinite pulse}.settings-shortcut{width:36px;height:36px;color:var(--text-muted);border-radius:var(--radius-full);cursor:pointer;opacity:.3;-webkit-tap-highlight-color:transparent;background:0 0;border:none;justify-content:center;align-items:center;font-size:14px;transition:opacity .2s;display:flex;position:fixed;bottom:16px;right:16px}.settings-shortcut:hover{opacity:.6}::-webkit-scrollbar{display:none}@keyframes float{0%,to{opacity:.15;transform:translateY(0)scale(1)}50%{opacity:.25;transform:translateY(-30px)scale(1.1)}}@keyframes idlePromptPulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.idle-screen{background:var(--bg-primary);z-index:1000;cursor:pointer;-webkit-tap-highlight-color:transparent;background-image:radial-gradient(80% 60% at 50% 0,#6c63ff1f 0%,#0000 60%),radial-gradient(60% 40% at 80% 100%,#a78bfa14 0%,#0000 50%);flex-direction:column;justify-content:center;align-items:center;animation:.8s ease-out fadeIn;display:flex;position:fixed;inset:0}.idle-content{text-align:center;margin-bottom:60px}.idle-time{color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-4px;text-shadow:0 0 80px var(--accent-glow);font-size:120px;font-weight:800;line-height:1}.idle-date{color:var(--text-secondary);margin-top:12px;font-size:22px;font-weight:500}.idle-center{color:var(--accent-light);letter-spacing:2px;text-transform:uppercase;margin-top:20px;font-size:16px;font-weight:600}.idle-prompt{color:var(--text-secondary);flex-direction:column;align-items:center;gap:10px;font-size:18px;font-weight:500;animation:2.5s ease-in-out infinite idlePromptPulse;display:flex}.idle-prompt-icon{font-size:32px}.idle-particles{pointer-events:none;position:absolute;inset:0;overflow:hidden}.idle-particle{background:var(--accent);opacity:.15;border-radius:50%;width:6px;height:6px;animation:6s ease-in-out infinite float;position:absolute}.idle-particle:first-child{animation-duration:5s;animation-delay:0s;top:20%;left:10%}.idle-particle:nth-child(2){animation-duration:7s;animation-delay:1s;top:60%;left:30%}.idle-particle:nth-child(3){animation-duration:6s;animation-delay:2s;top:30%;left:50%}.idle-particle:nth-child(4){animation-duration:8s;animation-delay:.5s;top:70%;left:70%}.idle-particle:nth-child(5){animation-duration:5.5s;animation-delay:1.5s;top:40%;left:85%}.idle-particle:nth-child(6){animation-duration:7.5s;animation-delay:3s;top:80%;left:20%}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}.phone-block{gap:1px;display:inline-flex}.phone-char{text-align:center;min-width:.6em;display:inline-block}.phone-char.entered{color:var(--text-primary)}.phone-char.cursor{color:var(--text-muted);position:relative}.phone-char.cursor:after{content:"";background:var(--accent-light);border-radius:2px;width:80%;height:3px;animation:1s step-end infinite blink;position:absolute;bottom:-2px;left:10%}.phone-char.placeholder{color:var(--text-muted)}.network-bar{background:linear-gradient(90deg, var(--error) 0%, #dc2626 100%);color:#fff;text-align:center;z-index:2000;letter-spacing:.3px;padding:8px 16px;font-size:13px;font-weight:600;animation:.3s ease-out fadeIn;position:fixed;top:0;left:0;right:0}.screen-transition{animation:.4s ease-out fadeInUp}.phone-char.entered{color:var(--text-primary);animation:.2s ease-out digitBounce}.days-badge{letter-spacing:.5px;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.days-badge.safe{color:var(--success);background:#34d39926}.days-badge.warning{color:var(--warning);background:#fbbf2426;animation:2s ease-in-out infinite pulse}.days-badge.expired{color:var(--error);background:#f8717126}.pt-card{align-items:center;gap:16px;flex-direction:row!important;display:flex!important}.pt-ring-wrap{flex-shrink:0;width:56px;height:56px;position:relative}.pt-ring-wrap svg{display:block}.pt-ring-text{color:var(--accent-light);justify-content:center;align-items:center;font-size:18px;font-weight:800;display:flex;position:absolute;inset:0}.pt-info{flex-direction:column;gap:4px;display:flex}.pt-info .product-name{color:var(--text-primary);font-size:15px;font-weight:600}.session-detail{color:var(--text-secondary);font-size:14px}.session-detail strong{color:var(--accent-light);font-size:18px;font-weight:800}.session-total{color:var(--text-muted)}.session-remain{color:var(--text-muted);font-size:12px}.session-remain strong{color:var(--success);font-weight:700}
