.unsubscribe-container { min-height: 100vh; background-color: #f5f7fa; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1.5rem; .unsubscribe-card { background-color: #fff; border-radius: 12px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08); max-width: 550px; width: 100%; overflow: hidden; transition: all 0.3s ease; &:hover { transform: translateY(-5px); box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1); } .header { background-color: #05a7be; padding: 1.75rem 1rem; text-align: center; .logo { max-width: 180px; margin-bottom: 0.5rem; } h1 { color: #fff; font-size: 1.75rem; font-weight: 600; margin: 0.5rem 0 0; } } .content { padding: 2.5rem 2rem; text-align: center; .status-icon { font-size: 4rem; margin-bottom: 1.5rem; display: inline-block; &.loading { color: #05a7be; animation: pulse 1.5s infinite ease-in-out; } &.success { color: #10b981; } &.error { color: #ef4444; } } .message { font-size: 1.125rem; color: #374151; margin-bottom: 1.25rem; font-weight: 500; } .sub-message { color: #6b7280; font-size: 0.95rem; line-height: 1.5; margin-bottom: 2rem; } .loading-spinner { margin: 0 auto 1.5rem; width: 60px; height: 60px; border-radius: 50%; border: 4px solid rgba(5, 167, 190, 0.1); border-left-color: #05a7be; animation: spin 1.2s linear infinite; } .action-buttons { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; margin-top: 1.5rem; .btn { padding: 0.75rem 1.5rem; border-radius: 6px; font-weight: 600; transition: all 0.2s ease; text-decoration: none; &.btn-primary { background-color: #05a7be; color: white; &:hover { background-color: darken(#05a7be, 8%); transform: translateY(-2px); } } &.btn-secondary { background-color: #f3f4f6; color: #4b5563; &:hover { background-color: #e5e7eb; transform: translateY(-2px); } } } } } .footer { background-color: #f9fafb; padding: 1.25rem; text-align: center; border-top: 1px solid #e5e7eb; .copyright { color: #6b7280; font-size: 0.875rem; } } } } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } @keyframes pulse { 0%, 100% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } } @media (max-width: 640px) { .unsubscribe-container { padding: 1rem; .unsubscribe-card { .header { padding: 1.25rem 1rem; h1 { font-size: 1.5rem; } } .content { padding: 1.75rem 1.25rem; .status-icon { font-size: 3.5rem; } .message { font-size: 1rem; } .action-buttons { .btn { width: 100%; text-align: center; } } } } } }