@font-face { src: url("/assets/fonts/IranSans-Medium.ttf") format('truetype'), url("/assets/fonts/IranSans-Medium.woff2") format('woff2'); font-family: 'IranSansMedium'; font-weight: normal; font-style: normal; } .font-iranian-sans { font-family: 'IranSansMedium', sans-serif; } :root { --primary: #7B1FA2; --primary-light: #8563e3; --primary-dark: #530077; --primary-bg: #eef2ff; --success: #10b981; --success-light: #d1fae5; --success-dark: #059669; --not-success: #F44336; --not-success-light: #FF5252; --not-success-dark: #D32F2F; --background: #ffffff; --foreground: #1e293b; --muted: #f8fafc; --muted-foreground: #64748b; --border: #e2e8f0; --radius: 22px; --shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.05); --shadow-sm: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.05); --shadow-glow: 0 0 15px rgba(0, 0, 0, 0.05); } * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'IranSansMedium', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; } html, body { height: 100%; } body { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #eef2ff 0%, #e0f2fe 50%, #dbeafe 100%); padding: 1rem; color: var(--foreground); direction: rtl; } .payment-content { padding: 1.25rem 1.5rem 1.5rem; position: relative; z-index: 1; } .payment-container { width: 100%; max-width: 400px; background: var(--background); border-radius: var(--radius); box-shadow: var(--shadow), var(--shadow-glow); overflow: hidden; position: relative; transition: transform 0.3s ease, box-shadow 0.3s ease; backdrop-filter: blur(10px); border: 1px solid rgba(255, 255, 255, 0.5); } .payment-container::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(to left, var(--primary-light), var(--primary-dark)); z-index: 10; } .payment-container::after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: url("data:image/svg+xml,%3Csvg width='100' height='100' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11 18c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm48 25c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm-43-7c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm63 31c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM34 90c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm56-76c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zM12 86c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm28-65c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm23-11c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-6 60c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm29 22c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM32 63c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm57-13c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm-9-21c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM60 91c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM35 41c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zM12 60c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2z' fill='%234f46e5' fill-opacity='0.03' fill-rule='evenodd'/%3E%3C/svg%3E"); opacity: 0.5; z-index: -1; } .payment-header { padding: 1.5rem 1.5rem 1rem; text-align: center; display: flex; align-items: center; justify-content: center; gap: 1rem; background: linear-gradient(to bottom, var(--primary-bg), rgba(238, 242, 255, 0.5)); position: relative; overflow: hidden; } .payment-header::before { content: ''; position: absolute; width: 200px; height: 200px; background: radial-gradient(circle, var(--primary-light) 0%, transparent 70%); opacity: 0.1; top: -100px; right: -100px; border-radius: 50%; } .payment-header::after { content: ''; position: absolute; width: 150px; height: 150px; background: radial-gradient(circle, var(--primary-light) 0%, transparent 70%); opacity: 0.1; bottom: -75px; left: -75px; border-radius: 50%; } .logo-container { width: 65px; height: 65px; background: var(--background); border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 10px -1px rgba(0, 0, 0, 0.1), 0 2px 6px -2px rgba(0, 0, 0, 0.05); overflow: hidden; padding: 0.25rem; border: 1px solid rgba(255, 255, 255, 0.9); position: relative; z-index: 1; transition: transform 0.3s ease, box-shadow 0.3s ease; } .logo-container:hover { transform: scale(1.05); box-shadow: 0 6px 15px -2px rgba(0, 0, 0, 0.1), 0 3px 8px -3px rgba(0, 0, 0, 0.05); } .logo-container img { max-width: 100%; max-height: 100%; object-fit: contain; transition: transform 0.3s ease; } .logo-container:hover img { transform: scale(1.05); } .success-icon { position: absolute; bottom: 30px; right: 124px; width: 20px; height: 20px; background: linear-gradient(to bottom right, var(--success), var(--success-dark)); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; border: 2px solid white; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); animation: success-pulse 2s infinite; z-index: 2; } .success-icon { animation: success-pulse 2s infinite, float 3s ease-in-out infinite; } .not-success-icon { position: absolute; bottom: 30px; right: 124px; width: 20px; height: 20px; background: linear-gradient(to bottom right, var(--not-success), var(--not-success-dark)); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; border: 2px solid white; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); animation: not-success-pulse 2s infinite; z-index: 2; } .not-success-icon { animation: not-success-pulse 2s infinite, float 3s ease-in-out infinite; } .header-text { position: relative; text-align: right; } .header-text h1 { font-size: 1.2rem; font-weight: 700; color: var(--primary-dark); margin-bottom: 0.25rem; position: relative; display: inline-block; } .header-text h1::after { content: ''; position: absolute; bottom: -4px; right: 0; width: 40%; height: 2px; background: linear-gradient(to left, var(--primary), transparent); border-radius: 2px; } .header-text p { font-size: 0.85rem; color: var(--muted-foreground); } .form-group { margin-bottom: 1.25rem; } .form-label { display: block; font-size: 0.85rem; font-weight: 500; margin-bottom: 0.5rem; color: var(--foreground); } .form-input { width: 100%; padding: 0.85rem 1rem; font-size: 0.95rem; background-color: var(--muted); border: 1px solid var(--border); border-radius: var(--radius); color: var(--foreground); transition: all 0.2s ease; box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05); } .form-input:focus { outline: none; border-color: var(--primary-light); box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1), inset 0 1px 3px rgba(0, 0, 0, 0.05); } .form-input::placeholder { color: var(--muted-foreground); opacity: 0.7; } .form-input:hover { border-color: var(--primary-light); } .tracking-code { font-size: 1rem; font-weight: 700; color: var(--foreground); direction: ltr; display: inline-block; letter-spacing: 0.5px; background: rgba(255, 255, 255, 0.7); padding: 0.3rem 0.6rem; border-radius: calc(var(--radius) / 2); border: 1px dashed var(--border); position: relative; box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05); transition: all 0.2s ease; } .tracking-code:hover { background: rgba(255, 255, 255, 0.9); box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.02); } .copy-button { position: absolute; left: 0.25rem; top: 50%; transform: translateY(-50%); background: transparent; border: none; width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; color: var(--primary); cursor: pointer; transition: all 0.2s ease; opacity: 0.7; } .copy-button:hover { color: var(--primary-dark); opacity: 1; } .refound { font-size: 0.90rem; font-weight: 700; color: var(--foreground); direction: ltr; display: inline-block; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); background: linear-gradient(to right, var(--primary-dark), var(--foreground)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .info-section { background: var(--muted); border-radius: var(--radius); padding: 1.25rem; text-align: center; border: 1px solid var(--border); position: relative; overflow: hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02); } .amount-card { background: var(--muted); border-radius: var(--radius); padding: 1.25rem; text-align: center; border: 1px solid var(--border); position: relative; overflow: hidden; transition: transform 0.3s ease, box-shadow 0.3s ease; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02); margin-bottom: 1.25rem; } .amount-card:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05); } .amount-card::before { content: ''; position: absolute; top: 0; right: 0; width: 4px; height: 100%; background: linear-gradient(to bottom, var(--primary-light), var(--primary-dark)); border-radius: 0 var(--radius) var(--radius) 0; } .amount-card::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 30%; background: linear-gradient(to top, rgba(255, 255, 255, 0.7), transparent); opacity: 0.5; pointer-events: none; } .amount-label { display: block; font-size: 0.85rem; font-weight: 500; margin-bottom: 0.75rem; color: var(--muted-foreground); position: relative; } .amount-label::after { content: ''; display: block; width: 30px; height: 2px; background: linear-gradient(to right, var(--primary-light), var(--success-light)); margin: 0.4rem auto 0; opacity: 0.5; border-radius: 2px; } .amount-display { margin-bottom: 1rem; border-radius: 10px; } .amount-value { font-size: 1.5rem; font-weight: 700; color: var(--foreground); direction: ltr; display: inline-block; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); background: linear-gradient(to right, var(--primary-dark), var(--foreground)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .currency { font-size: 0.8rem; margin-right: 0.25rem; color: var(--muted-foreground); font-weight: 500; } .toman-value { font-size: 0.85rem; color: var(--muted-foreground); margin-top: 0.5rem; display: block; } .amount-input-container { position: relative; margin-top: 1rem; padding-top: 1rem; border-top: 1px dashed rgba(79, 70, 229, 0.2); } .amount-input-label { display: block; font-size: 0.8rem; font-weight: 500; margin-bottom: 0.5rem; color: var(--muted-foreground); text-align: right; } .amount-input { width: 100%; padding: 0.75rem 1rem; font-size: 0.95rem; background-color: var(--background); border: 1px solid var(--border); border-radius: calc(var(--radius) / 2); color: var(--foreground); transition: all 0.2s ease; box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05); text-align: center; } .amount-input:focus { outline: none; border-color: var(--primary-light); box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1), inset 0 1px 3px rgba(0, 0, 0, 0.05); } .amount-input::placeholder { color: var(--muted-foreground); opacity: 0.7; } .amount-input:hover { border-color: var(--primary-light); } .details-list { background: var(--background); border-radius: var(--radius); border: 1px solid var(--border); margin-bottom: 1.25rem; overflow: hidden; font-size: 0.85rem; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02); transition: transform 0.3s ease, box-shadow 0.3s ease; } .details-list:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.05); } .details-item { display: flex; justify-content: space-between; padding: 0.75rem 1rem; border-bottom: 1px solid var(--border); transition: background-color 0.2s ease; } .details-item:hover { background-color: rgba(238, 242, 255, 0.3); } .details-item:last-child { border-bottom: none; } .details-label { color: var(--muted-foreground); } .details-value { font-weight: 500; color: var(--foreground); } .btn { display: block; width: 100%; padding: 0.85rem 1rem; font-size: 0.95rem; font-weight: 600; text-align: center; border-radius: var(--radius); border: none; cursor: pointer; transition: all 0.3s ease; background: linear-gradient(to right, var(--primary), var(--primary-dark)); color: white; box-shadow: 0 4px 6px -1px rgba(79, 70, 229, 0.2), 0 2px 4px -2px rgba(79, 70, 229, 0.1); position: relative; overflow: hidden; } .btn:hover { background: linear-gradient(to right, var(--primary-dark), var(--primary)); transform: translateY(-2px); box-shadow: 0 6px 10px -1px rgba(79, 70, 229, 0.3), 0 2px 6px -2px rgba(79, 70, 229, 0.2); } .btn:active { transform: translateY(-1px); } .btn::after { content: ''; position: absolute; width: 30px; height: 100%; top: 0; left: -100px; background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.3), transparent); animation: shine 3s infinite; } .btn-icon { display: inline-flex; align-items: center; justify-content: center; } .btn-icon svg { margin-left: 0.5rem; transition: transform 0.2s ease; } .btn:hover svg { transform: translateX(-3px); } .secure-badge { display: flex; align-items: center; justify-content: center; margin-top: 1rem; font-size: 0.75rem; color: var(--muted-foreground); } .secure-badge svg { margin-left: 0.5rem; color: var(--success); } .confetti { position: absolute; width: 8px; height: 8px; opacity: 0.7; top: 0; animation: confetti 4s ease-in-out infinite; } .shimmer { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.5) 50%, rgba(255, 255, 255, 0) 100%); background-size: 200% 100%; animation: shimmer 2s infinite; pointer-events: none; } .highlight { animation: highlight 1s ease-out; } @keyframes highlight { 0% { background-color: rgba(79, 70, 229, 0); } 50% { background-color: rgba(79, 70, 229, 0.1); } 100% { background-color: rgba(79, 70, 229, 0); } } @keyframes success-pulse { 0% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.7); } 70% { box-shadow: 0 0 0 8px rgba(16, 185, 129, 0); } 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); } } @keyframes not-success-pulse { 0% { box-shadow: 0 0 0 0 rgba(255, 56, 56, 0.7); } 70% { box-shadow: 0 0 0 8px rgba(16, 185, 129, 0); } 100% { box-shadow: 0 0 0 0 rgba(16, 185, 129, 0); } } @keyframes shine { 0% { left: -100px; } 20% { left: 100%; } 100% { left: 100%; } } @keyframes confetti { 0% { transform: translateY(0) rotate(0deg); opacity: 0.7; } 100% { transform: translateY(100vh) rotate(720deg); opacity: 0; } } @keyframes float { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } } @keyframes shimmer { 0% { background-position: -100% 0; } 100% { background-position: 100% 0; } } @media (max-width: 400px) { .payment-container { border-radius: calc(var(--radius) / 2); } .payment-header { padding: 1rem; flex-direction: column; gap: 0.5rem; } .header-text { text-align: center; } .header-text h1::after { right: 30%; width: 40%; } .payment-content { padding: 1rem; } }