.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;padding:var(--spacing-4);background:#121b2de6;justify-content:center;align-items:center;animation:.3s ease-out modalFadeIn;display:flex;position:fixed;inset:0}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-container{background:var(--neutral-white);width:100%;max-width:500px;padding:var(--spacing-6);border:1px solid #ff7f4133;border-radius:32px;max-height:90vh;animation:.5s cubic-bezier(.16,1,.3,1) modalSlideUp;position:relative;overflow-y:auto;box-shadow:0 30px 60px #0006}.modal__header{text-align:center;margin-bottom:var(--spacing-5)}.modal__nfc-visual{width:90px;height:90px;margin:0 auto var(--spacing-3);place-items:center;display:grid;position:relative}.modal__nfc-ring{border:2px dashed var(--primary-color);opacity:.3;border-radius:50%;animation:10s linear infinite modalRingRotate;position:absolute;inset:0}.modal__nfc-ring:after{content:"";border:1px solid var(--primary-color);opacity:.1;border-radius:50%;animation:2s ease-out infinite modalPulseRing;position:absolute;inset:-5px}@keyframes modalPulseRing{0%,to{opacity:.1;transform:scale(1)}50%{opacity:.2;transform:scale(1.1)}}.modal__icon-box{background:var(--accent-color-light);width:64px;height:64px;color:var(--primary-color);z-index:2;border-radius:50%;place-items:center;transition:all .3s;display:grid;box-shadow:0 0 20px #ff7f4133}.modal__title{color:var(--secondary-color);margin-bottom:4px;font-size:1.5rem;font-weight:800;line-height:1.2}.modal__subtitle{color:var(--neutral-medium);max-width:300px;margin:0 auto;font-size:.9rem;line-height:1.5}.modal__close{background:var(--neutral-light);cursor:pointer;width:36px;height:36px;transition:var(--transition);color:var(--secondary-color);z-index:10;border:none;border-radius:50%;place-items:center;display:grid;position:absolute;top:20px;right:20px}.modal__close:hover{background:var(--error-color);color:#fff;transform:rotate(90deg)}.modal__form{gap:var(--spacing-3);flex-direction:column;display:flex}.modal__grid{gap:var(--spacing-3);grid-template-columns:1fr 1fr;display:grid}.modal__field{width:100%;position:relative}.modal__input{width:100%;font-family:var(--font-family-base);transition:var(--transition);color:var(--secondary-color);background:#f8fafc;border:1px solid #121b2d1a;border-radius:12px;padding:14px 18px;font-size:.95rem}.modal__input::placeholder{color:#121b2d4d;font-weight:400}.modal__input:focus{border-color:var(--primary-color);background:#fff;outline:none;box-shadow:0 0 0 4px #ff7f411a}.modal__input--error{border-color:var(--error-color)!important;background:#e6394605!important}.modal__select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23121b2d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 16px center;background-repeat:no-repeat;background-size:16px;padding-right:48px}.modal__textarea{resize:vertical;min-height:100px}.modal__error{color:var(--error-color);font-size:.7rem;font-weight:500;animation:.2s errorFadeIn;position:absolute;bottom:-18px;left:12px}@keyframes errorFadeIn{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.modal__status{margin:var(--spacing-1)0;border-radius:12px;align-items:center;gap:8px;padding:12px 16px;font-size:.85rem;font-weight:500;display:flex}.modal__status--error{color:var(--error-color);background:#e639461a}.modal__status--success{color:var(--success-color);background:#2a9d8f1a}.modal__submit{margin-top:var(--spacing-2);text-transform:uppercase;letter-spacing:1px;cursor:pointer;width:100%;transition:var(--transition);border:none;justify-content:center;align-items:center;gap:8px;padding:16px;font-weight:700;display:inline-flex}.modal__submit:disabled{opacity:.7;cursor:not-allowed}.modal__submit svg{transition:transform .3s}.modal__submit:hover:not(:disabled) svg{transform:translate(5px)}.modal__loading-dots{gap:2px;margin-left:4px;display:inline-flex}.modal__loading-dots span{opacity:0;animation:1.4s infinite loadingDots}.modal__loading-dots span:nth-child(2){animation-delay:.2s}.modal__loading-dots span:nth-child(3){animation-delay:.4s}@keyframes loadingDots{0%,to{opacity:0}50%{opacity:1}}.modal__footnote{color:var(--neutral-medium);margin-top:var(--spacing-2);opacity:.7;justify-content:center;align-items:center;gap:6px;font-size:.7rem;display:flex}.modal__footnote svg{color:var(--primary-color)}.modal__success-state{text-align:center;padding:var(--spacing-4)0;animation:.5s successFadeIn}@keyframes successFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.modal__success-icon{color:var(--success-color);margin-bottom:var(--spacing-3);filter:drop-shadow(0 4px 10px #2a9d8f4d)}.modal__success-state h4{color:var(--secondary-color);margin-bottom:10px;font-size:1.5rem;font-weight:800}.modal__success-state p{color:var(--neutral-medium);margin-bottom:var(--spacing-5);line-height:1.6}.modal__cooldown-state{text-align:center;padding:var(--spacing-4)0;animation:.5s successFadeIn}.modal__cooldown-icon{color:var(--primary-color);margin-bottom:var(--spacing-3);filter:drop-shadow(0 4px 10px #ff7f414d)}.modal__cooldown-title{color:var(--secondary-color);margin-bottom:10px;font-size:1.5rem;font-weight:800}.modal__cooldown-text{color:var(--neutral-medium);margin-bottom:var(--spacing-5);max-width:350px;margin-left:auto;margin-right:auto;line-height:1.6}.modal__cooldown-btn{margin-top:var(--spacing-2);justify-content:center;align-items:center;gap:8px;padding:12px 24px;display:inline-flex}@keyframes modalRingRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}@media screen and (max-width:768px){.modal-overlay{align-items:flex-end;padding:0}.modal-container{max-width:100%;padding:var(--spacing-5)var(--spacing-4)var(--spacing-8);border-radius:32px 32px 0 0;max-height:90vh;margin:0;animation:.5s cubic-bezier(.16,1,.3,1) modalSheetUp;overflow-y:auto}.modal__grid{grid-template-columns:1fr}.modal__title{font-size:1.25rem}.modal__subtitle{font-size:.85rem}.modal__close{width:32px;height:32px;top:15px;right:15px}.modal__icon-box{width:56px;height:56px}.modal__icon-box svg{width:32px;height:32px}.modal__nfc-visual{width:70px;height:70px}.modal__input{padding:12px 16px;font-size:.9rem}.modal__select{background-position:right 12px center;padding-right:40px}.modal__submit{padding:14px}.modal__error{font-size:.65rem;bottom:-16px}.modal__cooldown-title{font-size:1.25rem}.modal__cooldown-text{font-size:.9rem}}@keyframes modalSheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media screen and (min-width:1024px){.modal-container{max-width:1000px;padding:var(--spacing-6);overflow-y:visible}.modal__content-wrapper{gap:var(--spacing-6);grid-template-columns:.9fr 1.1fr;align-items:start;display:grid}.modal__header{text-align:left;padding-right:var(--spacing-4);border-right:1px solid #121b2d0d;margin-bottom:0}.modal__nfc-visual{margin:0 0 var(--spacing-4)0;width:80px;height:80px}.modal__icon-box{width:56px;height:56px}.modal__icon-box svg{width:32px;height:32px}.modal__title{margin-bottom:var(--spacing-2);font-size:1.8rem}.modal__subtitle{max-width:100%;margin:0 0 var(--spacing-4)0;font-size:1rem}.modal__form{margin-top:0}.modal-container{animation:.3s ease-out modalFadeIn}.modal__close{top:20px;right:20px}.modal__input{padding:12px 16px}.modal__success-state,.modal__cooldown-state{padding:var(--spacing-6);grid-column:span 2}}@media screen and (min-width:1440px){.modal-container{max-width:1100px}.modal__content-wrapper{gap:var(--spacing-8)}.modal__title{font-size:2rem}.modal__subtitle{font-size:1.1rem}}@media screen and (max-width:480px){.modal-container{padding:var(--spacing-4)var(--spacing-3)var(--spacing-6)}.modal__title{font-size:1.1rem}.modal__subtitle{font-size:.8rem}.modal__input{padding:10px 14px}.modal__field{margin-bottom:4px}.modal__status{padding:10px 12px;font-size:.8rem}.modal__footnote{flex-wrap:wrap;font-size:.65rem}.modal__cooldown-title{font-size:1.1rem}.modal__cooldown-text{font-size:.85rem}.modal__cooldown-icon{width:48px;height:48px}}
